以JSON形式將JS中Array對(duì)象數(shù)組傳至后臺(tái)的方法
業(yè)務(wù)是需要將前臺(tái)jQuery easyUI DataGrid列表中所選的若干行的數(shù)據(jù)傳到后臺(tái)進(jìn)行update操作
通常情況下我們會(huì)獲取所選取行對(duì)象的ID,通過循環(huán)及簡(jiǎn)單封裝拼湊成一個(gè)長(zhǎng)String傳送過去,并在Service層解釋再通過findByID獲取實(shí)例并update
但今次我們需要將整個(gè)對(duì)象群完整的傳輸至后臺(tái)
其結(jié)構(gòu)如下
選用谷歌的GSON插件及json2.js搭配使用
前臺(tái)代碼如下,簡(jiǎn)潔起見已去除部分簡(jiǎn)單驗(yàn)證代碼:
var rows = $('#dg1').datagrid('getSelections');
$.ajax({
cache : false,
type : "POST",
url : _basePath + '/sectionGroup/pair',
data : {rows : JSON.stringify(rows), group_id : group_id, group_name : group_name},
success : function(data) {
if(data.success == true){
$.messager.confirm('配置成功','是否刷新列表?', function(r){
if (r){
$('#dg').datagrid('reload');
$('#dg1').datagrid('reload');
$('#dg2').datagrid('reload');
}
});
}else{
$.messager.show({
title:'提示',msg:'配置失敗',
showType:'fade',style:{right:'',bottom:''}
});
}
}
});
此頁(yè)面中需要引入json2.js
后臺(tái)Controller中接收如下:
@RequestMapping(value = "/pair")
@ResponseBody
public ResponseData pair(String rows, String group_name, String group_id, HttpServletRequest request) {
User user = (User) SecurityContextUtil.getCurrentUser();
if (user == null) {
user = (User) request.getSession().getAttribute(Constants.USER_OS);
}
Gson gson = new Gson();
List<SectionGroup> list = gson.fromJson(rows, new TypeToken<List<SectionGroup>>() {}.getType());
for (SectionGroup sectionGroup : list) {
sectionGroup.setRegion(user.getRegion_id());
sectionGroup.setCompany_id(user.getOrg_id());
sectionGroup.setGroup_id(group_id);
sectionGroup.setGroup_name(group_name);
service.insertEntity(sectionGroup);
}
return ResponseData.SUCCESS_NO_DATA;
}
其中GSON及TypeToken為GSON包中引入類
入?yún)ows應(yīng)為String型
經(jīng)過Gson轉(zhuǎn)換后List依舊為普通接口,內(nèi)部裝載前臺(tái)完整的Object對(duì)象
PS:關(guān)于json操作,這里再為大家推薦幾款比較實(shí)用的json在線工具供大家參考使用:
在線JSON代碼檢驗(yàn)、檢驗(yàn)、美化、格式化工具:
http://tools.jb51.net/code/json
JSON在線格式化工具:
http://tools.jb51.net/code/jsonformat
在線XML/JSON互相轉(zhuǎn)換工具:
http://tools.jb51.net/code/xmljson
json代碼在線格式化/美化/壓縮/編輯/轉(zhuǎn)換工具:
http://tools.jb51.net/code/jsoncodeformat
在線json壓縮/轉(zhuǎn)義工具:
http://tools.jb51.net/code/json_yasuo_trans
C語(yǔ)言風(fēng)格/HTML/CSS/json代碼格式化美化工具:
http://tools.jb51.net/code/ccode_html_css_json
- JS array 數(shù)組詳解
- JS Array.slice 截取數(shù)組的實(shí)現(xiàn)方法
- js刪除Array數(shù)組中指定元素的兩種方法
- JavaScript判斷變量是否為數(shù)組的方法(Array)
- JS中數(shù)組Array的用法示例介紹
- js中數(shù)組Array的一些常用方法總結(jié)
- JavaScript數(shù)組Array對(duì)象增加和刪除元素方法總結(jié)
- js判斷是否為數(shù)組的函數(shù): isArray()
- javascript Array.remove() 數(shù)組刪除
- JS在Array數(shù)組中按指定位置刪除或添加元素對(duì)象方法示例
相關(guān)文章
實(shí)例講解JavaScript 計(jì)時(shí)事件
這篇文章主要介紹了JavaScript 計(jì)時(shí)事件的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07Javascript string 擴(kuò)展庫(kù)代碼
Javascript原生的String處理函數(shù)顯得很不夠豐富2010-04-04彈出遮罩層后禁止?jié)L動(dòng)效果【實(shí)現(xiàn)代碼】
下面小編就為大家?guī)硪黄獜棾稣谡謱雍蠼節(jié)L動(dòng)效果【實(shí)現(xiàn)代碼】。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-04-04javascript使用location.search的示例
本文介紹javascript 使用location.search獲取當(dāng)前地址欄參數(shù)的實(shí)例2013-11-11js調(diào)試工具console.log()方法查看js代碼的執(zhí)行情況
以往都是使用alert的方式查看js代碼的執(zhí)行情況,今天看到有朋友使用console.log函數(shù)打印輸出函數(shù),變量,對(duì)象,下邊就console.log的使用情況進(jìn)行記錄2014-08-08