[javascript] js 封装json对象,服务器端java解析
在jsp中使用easyUI完成json的封装:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>失信信息</title> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/themes/bootstrap/easyui.css"> <link rel="stylesheet" charset="utf-8" type="text/css" href="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/themes/icon.css"> <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/themes/icon-suit-a.css"> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.4.3.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/jquery.easyui.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript"> var editRow = null; $(function(){ var param = window.location.href; //var reg = new RegExp("(^|&)" + param + "=([^&]*)(&|$)"); var r = window.location.search.substr(1); var p = r.split("&"); var ary = new Array(); for (i=0;i<p.length;i++){ var s = p[i]; var t = s.split("="); ary.push(t[1]); } var qiymc=ary[1]; $("#shixxx").datagrid({ url:'${pageContext.request.contextPath}/credit/company/xinyxx.action?qiymc='+qiymc, pagination:true, pageSize:10, pageList:[10,20,30,50], fitColumns:true, nowrap:true, rownumbers:true, toolbar:[ { iconCls:'icon-add', text:'确定', handler:function(){ saveSxxx(); } }, { iconCls:'icon-redo', text:'取消', handler:function(){ } } ], columns:[ [ //easyui 可编辑表格的实现 {field:'z',title:'企业全称(中文)',editor:{type:'text',required:true},width:100,align:'center'}, {field:'a',title:'案由',width:100,editor:{type:'text',required:true},align:'center'}, {field:'b',title:'原审法院',editor:{type:'text',required:true},width:100,align:'center'}, {field:'d',title:'案号',editor:{type:'text',required:true},width:100,align:'center'}, {field:'j',title:'原审案号',editor:{type:'text',required:true},width:100,align:'center'}, {field:'c',title:'立案日期',editor:{type:'text',required:true},width:100,align:'center', formatter:function(value,row,index){ var date = new Date(value); var year = date.getFullYear(); var month = date.getMonth()+1; var day = date.getDate(); return year+"-"+month+'-'+day; }}, {field:'i',title:'结案日期',editor:{type:'text',required:true},width:100,align:'center', formatter:function(value,row,index){ var date = new Date(value); var year = date.getFullYear(); var month = date.getMonth()+1; var day = date.getDate(); return year+"-"+month+'-'+day; }} ] ] , onClickRow:function(rowIndex,rowData){ if (editRow != undefined) { $("#shixxx").datagrid('endEdit', editRow); } }, onAfterEdit: function (rowIndex, rowData, changes) { editRow = undefined; }, onDblClickRow:function (rowIndex, rowData) { if (editRow != undefined) { $("#shixxx").datagrid('endEdit', editRow); }else{ $("#shixxx").datagrid('beginEdit', rowIndex); editRow = rowIndex; } } }); }); //创建对象 var Column =function(z,a,b,d,j,c,xyxxid,e,f,g,i,y,xinxtype,qyid){ this.z= z||''; this.a= a || ''; this.b=b ||''; this.d=d ||''; this.j=j ||''; this.c = c ||''; this.xyxxid= xyxxid ; this.e = e ||''; this.f = f ||''; this.g = g ||''; this.i = i ||''; this.y = y||''; this.xinxtype = xinxtype ||''; this.qyid=qyid || ''; return {z:this.z,a:this.a,b:this.b,d:this.d,j:this.j,c:this.c,xyxxid:this.xyxxid ,e:this.e,f:this.f,g:this.g,i:this.i,y:this.y,xinxtype:this.xinxtype,qyid:this.qyid}; } //封装为json对象 function buildJson(rows){ var columns = new Array(); for(var i=0;i<rows.length;i++){ var column = new Column(rows[i].z,rows[i].a, rows[i].b,rows[i].d,rows[i].j,rows[i].c,rows[i].xyxxid, rows[i].e,rows[i].f,rows[i].g,rows[i].i,rows[i].y,rows[i].xinxtype,rows[i].qyid); columns.push(column); } return JSON.stringify(columns); } //保存更改 function saveSxxx(){ //$("#shixxx").datagrid("acceptChanges"); //var shixxx= $("#shixxx").datagrid("getChanges"); //$("#shixxx").datagrid("acceptChanges"); var rows = $("#shixxx").datagrid("getRows"); var columns = buildJson(rows); console.info(columns); $.post("${pageContext.request.contextPath}/sjxf/updateXyxx.action", { columns:columns }, function(data){ $.messager.alert("提示",data.msg,"info"); } ,"json"); } </script> </head> <body> <div id="shixxx" style="height:400px;"></div> </body> </html>
传递json数组到服务器端进行解析:
@RequestMapping("/updateXyxx")
public void updateXinyxx(HttpServletRequest request,
HttpServletResponse response,Writer writer){
String columns = request.getParameter("columns");
//将json字符串转化为数组
JSONArray array = new JSONArray().parseArray(columns);
JSONObject obj = new JSONObject();
try {
for (int i=0;i<array.size();i++){
JSONObject object = array.getJSONObject(i);
Xinyxx xinyxx = new Xinyxx();
xinyxx.setA(object.getString("a"));
xinyxx.setB(object.getString("b"));
xinyxx.setC(object.getString("c"));
xinyxx.setD(object.getString("d"));
xinyxx.setE(object.getString("e"));
xinyxx.setF(object.getString("f"));
xinyxx.setG(object.getString("g"));
xinyxx.setH(object.getString("h"));
xinyxx.setI(object.getString("i"));
xinyxx.setJ(object.getString("j"));
xinyxx.setY(object.getString("y"));
xinyxx.setZ(object.getString("z"));
xinyxx.setXinxtype(object.getString("xinxtype"));
xinyxx.setXyxxid(object.getLongValue("xyxxid"));
xinyxx.setQyid(object.getString("qyid"));
System.out.println("获取的对象为:"+xinyxx);
xinyxxService.updateXyxx(xinyxx);
}
obj.put("result", true);
obj.put("msg", "修改成功");
} catch (Exception e) {
e.printStackTrace();
obj.put("result", false);
obj.put("msg", "修改失败");
}finally{
try {
writer.write(obj.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
}
}

浙公网安备 33010602011771号