前端傳送的多層巢狀json解析
日前同事問及我jQuery 傳送JSON資料到後臺,後臺該如何接收的問題,經多方查閱,總結出了以下方法:
前臺要用到json2.js和jquery.js
後臺要用到json.jar。
在前端要將傳的JSON資料使用JSON.stringify(這裡是json資料)轉化成字串,後臺呼叫import net.sf.json.JSONObject方法或者採用獲取字元流的方法來獲取前臺傳送的資料。
例:
前端://拼裝JSON格式資料json
var json={"edit":[{"bh":"11111","mc":"11111","dbms":"ORACLE9i","dwmmc":"","addr":"","username":"","password":"","rm_sz":"ck","nyr_sz":"","id":"-1"},{"bh":"121","mc":"12","dbms":"ORACLE9i","dwmmc":"12","addr":"12","username":"12","password":"12","rm_sz":"ck","nyr_sz":"2011-09-06","id":"13"}],"del":["12"]};
var post={data:JSON.stringify(json)};//JSON.stringify(json)把json轉化成字串
$.post(url,post);
後臺:JSONObject json=JSONObject.fromObject(request.getParameter("data"));
List<Map<String,String>> edit=(List<Map<String, String>>) json.getJSONArray("edit");
List<?> del=(List<?>) json.getJSONArray("del");