后台如何解析json

1、以前倒是没有怎没遇到过需要后台解析的,由于json传到后台实际上是传的一个字符串通常用到批量删除时

var rows = $('#tt').datagrid('getSelections');
var size = rows.length;
var ids = "";
for(var i = 0; i < size; i ++){
ids += rows[i].id + ",";//将id添加到数组中
}

if(ids != ""){
$.messager.confirm('确认', '你确定要删除这些数据吗?', function(r){
if (r){
// exit action;
var params = {'ids':ids};

$.ajax({
type:"POST",
url:"roleses/delete",
data:params,
success:function(datas){
var data = JSON.parse(datas);

$.messager.show({
title:'提示',
msg:data.msg,
timeout:5000,
});

然后传给后台的String ids与其映射对应传值

public void deletePower(String ids,PrintWriter out) {

String [] st=ids.split(",");

Integer[] idss=new Integer[st.length];通过这两步解析出来

}

但是如果遇到传过来的是个对象有很多属性呢方法如下:

menuData=[]
for(var i=0;i<row;i++){
var menu={"id":selected[i].id,//传了id、fk_roles_id、state三个值
"fk_roles_id":rows[0].id,
"state":1
}
menuData.push(menu)
}
for(var i=0;i<nodes.length;i++){
var mehe={"id":nodes[i].id,
"fk_roles_id":rows[0].id,
"state":1
}
menuData.push(mehe)
}


var aToStr=JSON.stringify(menuData);//json必须通过这步转换成String格式了才能传过去


$.ajax({
type:"POST",
url:"powerroles/updata",
data:{'menuData':aToStr},
dataType: "json",
success:function(datas){

$.messager.show({
title:'提示',
msg:datas.msg,
timeout:5000,
});
}
})

后台:

public void updatePowerRoles(String menuData, PrintWriter out){

Messager message=new Messager(true, "成功修改", null);

JSONArray jsonArray = JSONArray.fromObject(menuData);
Integer[] integers=new Integer[jsonArray.size()];
JSONObject jsonobject2 = null;
for(int i=0;i<jsonArray.size();i++){
jsonobject2=jsonArray.getJSONObject(i);

integers[i]=jsonobject2.getInt("id");

}

Integer in=jsonobject2.getInt("fk_roles_id");

}//不过记着下关于JSONArray的jar包

原文地址:https://www.cnblogs.com/niuxi/p/5797812.html