页面传递Json对象,后台解析

来源:互联网 发布:mac装office软件要钱吗 编辑:程序博客网 时间:2024/06/16 06:54

使用的组件

前台组件:json2.js  来自 http://www.json.org/js.html
后台组件:json-lib-2.2.2-jdk15.jar


前台代码

1 通过页面生成json对象列表,然后转换成字符串
// 生成json对象 转字符串function makeTsJsonParam(){  var tsList = new Array();  var ts = {'tn_id':'','tn_trainSortie':'','tn_takeOffTime':'','tn_landingTime':'','tn_commander':'','tn_calendar':''};  var list1 = $(".flightid");  var list2 = $(".tn_trainSortie");  var list3 = $(".tn_takeOffTime");  var list4 = $(".tn_landingTime");//  var list5 = $(".tn_realityLandingTime");  var list6 = $(".tn_commander");//  var list7 = $(".tn_mechanician");//  var list8 = $(".tn_notes");  var list9 = $(".tn_calendar");  //alert(list1.length);  for (var i=0;i<list1.length;i++)  {  ts = {};  ts.tn_id = list1[i].value;  ts.tn_trainSortie = list2[i].value;  ts.tn_takeOffTime = list3[i].value;  //alert(list3[i].value)  ts.tn_landingTime= list4[i].value;//  ts.tn_realityLandingTime= list5[i].value;  ts.tn_commander= list6[i].value;//  ts.tn_mechanician= list7[i].value;//  ts.tn_notes= list8[i].value;  ts.tn_calendar= list9[i].value;   tsList[i] = ts;  }  var str = JSON.stringify( tsList );  return  str ;}
2 把处理过的Json字符串 提交给后台
//  把json字符串传递给后台function saveAllTrainSortie(){var str = makeTsJsonParam();// alert(str)var htmlStr = "-1";$.ajax({         url:'../train/saveAllTrainFerrySortie.do',            //url:'${ctx}/index.jsp',            cache:false,            type:'post',            async:false,          dataType:'html',                data:{             trainSortieListStr:str,          contentType: "application/x-www-form-urlencoded;charset=utf-8"            },            success:function(html){                // alert("html:"+html)                htmlStr = html;           }        })      return htmlStr    /*  if(htmlStr==1){     alert("保存成功");     } */}
3 前台字符串转json对象
备注:json2 解析json字符时,需要"",而不是‘’,否则解析会出错 ,如 pw.write("[{\"label\": \"蔡志高\", \"value\": \"czg\"}, {\"label\": \"刘小磊\", \"value\": \"lxl\"}]");  

var datas=JSON.parse(html);alert("html:"+datas.length) ;


后台代码

1 把字符串解析成 java对象  后处理。
public void saveAllTrainFerrySortie(HttpServletRequest request,HttpServletResponse response) {String trainSortieListStr = request.getParameter("trainSortieListStr");JSONArray array = JSONArray.fromObject(trainSortieListStr);for(int i=0;i<array.size();i++){Map ts=(Map)array.get(i);String tn_id = ""+ts.get("tn_id");String tn_trainSortie = ""+ts.get("tn_trainSortie");  String tn_takeOffTime = ""+ts.get("tn_takeOffTime");String tn_landingTime = ""+ts.get("tn_landingTime");  //String tn_realityLandingTime = ""+ts.get("tn_realityLandingTime");String tn_commander = ""+ts.get("tn_commander");//String tn_mechanician = ""+ts.get("tn_mechanician");//String tn_notes = ""+ts.get("tn_notes");String tn_calendar = ""+ts.get("tn_calendar");trainSoriteFerryService.saveTrainSortie(tn_id, tn_trainSortie, tn_takeOffTime, tn_landingTime, tn_commander, tn_calendar);  }try {              response.setCharacterEncoding("UTF-8");              PrintWriter pw = response.getWriter();              pw.write("1");              pw.flush();              pw.close();          } catch (IOException e) {              e.printStackTrace();          }  }




0 0
原创粉丝点击