[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();
            }
        }
        
    }
    

 

posted @ 2015-03-23 16:34  snow__wolf  阅读(1118)  评论(0)    收藏  举报