js传数组到java_以JSON形式将JS中Array对象数组传至后台的方法

本文介绍了一种将jQuery easyUI DataGrid选择的行数据以JSON格式通过Ajax发送到Java后台的方法。借助Gson库和json2.js,前端将数组对象转化为JSON字符串,后端接收到字符串后反序列化回对象列表,实现完整对象群的传输更新。
摘要由CSDN通过智能技术生成

业务是需要将前台jQuery easyUI DataGrid列表中所选的若干行的数据传到后台进行update操作

455fcb1717857620dd1c0248e555bbe1.gif 

通常情况下我们会获取所选取行对象的ID,通过循环及简单封装拼凑成一个长String传送过去,并在Service层解释再通过findByID获取实例并update

但今次我们需要将整个对象群完整的传输至后台

其结构如下

6f81090f20f3947fdf02094a49d6b2a4.gif 

选用谷歌的GSON插件及json2.js搭配使用

前台代码如下,简洁起见已去除部分简单验证代码:

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:''}

});

}

}

});

此页面中需要引入json2.js

后台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 list = gson.fromJson(rows, new TypeToken>() {}.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包中引入类

入参rows应为String型

经过Gson转换后List依旧为普通接口,内部装载前台完整的Object对象

PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线json压缩/转义工具:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值