前臺用到:json2.js,jquery.jsjava
後臺用到:json.jar(調用方法:import net.sf.json.JSONObject;)jquery
前臺簡要代碼: ajax
…… //拼裝JSON格式數據json varjson={ "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"] }; varpost={data:JSON.stringify(json)};//JSON.stringify(json)把json轉化成字符串 $.post(url,post); ……
後臺簡要代碼: json
…… JSONObjectjson=JSONObject.fromObject(request.getParameter("data")); List<Map<String,String>>edit=(List<Map<String,String>>)json.getJSONArray("edit"); List<?>del=(List<?>)json.getJSONArray("del"); //下面的操做就很少講了 ……
前臺json格式的數據如何傳入後臺數組
1. 將要傳入後臺的數據組裝成JSON格式的字符串:服務器
var jsonStr = [{'name':'jim' , 'age':20} , {'name':'king' , 'age':26},{'name':'jge' , 'age':30}]
2. 使用JQuery的ajax請求後臺app
jQuery.ajax({ type: "post", url: url, dataType : 'json', data : {'mydata':jsonStr}, success: function(data,textStatus){ alert("操做成功"); }, error: function(xhr,status,errMsg){ alert("操做失敗!"); } });
3.後臺數據的接收與解析:post
String jsonStr = ServletActionContext.getRequest().getParameter("mydata"); JSONArray jsonArray = JSONArray.fromObject(jsonStr); for(int i=0;i<jsonArray.length(); i++){ JSONObject jsonJ = jsonArray.getJSONObject(i); jsonJ.getInt("name"); jsonJ.getString("age"); }
4. 操做完成url
一、定義一個jsonspa
var retVal = JSON.parse("{}");
二、在retVal內注入兩個值
retVal .aa= 'aaStr'; retVal .bb= 'bbStr';
三、使用JSON.stringify(); stringify()用於從一個對象解析出json字符串
window.returnValue=JSON.stringify(retVal );
例如:
//stringify()用於從一個對象解析出字符串,如 var a = {a:1,b:2}; //結果: JSON.stringify(a);//"{"a":1,"b":2}" //傳值json數組 var oResult=new Object();//定義一個對象 for(var i=0;i<iRow;i++){ var rd = JSON.parse("{}");//定義一個json rd.AAT026=orgRelQuery.getCellValueById(i,"AAT026");//爲json注入值 rd.AAT028=orgRelQuery.getCellValueById(i,"AAT028"); rd.AAT001=orgRelQuery.getCellValueById(i,"AAT001"); oResult[i] =rd;//爲oResult 對象 注入json格式字符串 }//循環注入造成數組 result=JSON.stringify(oResult);//解析出json數組
一、接收傳值頁面的返回值 (retVal爲傳值頁面的返回值)
var result = JSON.parse(retVal );
二、獲取數據
var aa = result.aa; var bb = result.bb;
parse用於從一個字符串中解析出json對象,如
var str = '{"name":"huangxiaojian","age":"23"}'
結果:
JSON.parse(str)
或者例如:
var resultArr = JSON.parse(result); //resultArrlength--resulrArr長度 for(i=0;i<resultArrlength;i++){ //校驗有沒有選擇公司 resultArr[i].abt002; }
依賴jar:
還須要導入這些包
commons-beanutils-1.7.0.jar
commons-lang-2.1.jar
ezmorph-1.0.2.jar
commons-collections.jar
commons-logging-1.0.4.jar
json-lib-2.4-jdk15.jar
a.新建json 數據
Gd016 gd016 = (Gd016)get(Gd016.class, gdk016);//反射獲得實例對象 JSONObject json =JSONObject.fromObject(gd016);//將實例對象轉化爲json對象(將對象gd016的全部屬性和值以key和value的形式寫入json對象中) json.accumulate("xmlflag", xmlflag);//json對象內添加元素(在json對象中動態添加key和value鍵值對) businessXML.setOutObject("json", json.toString());//調用 json.toString()方法,使剛剛生成的json數據以String形式傳遞
b.解析json數據
(1)response.setContentType( "application/json" ); //服務器響應的類型
String jsonString = request.getParameter("testJsonString"); //獲取傳過來的json字符串 JSONObject jsonobj = JSONObject.fromObject(jsonString); //把 json格式的字符串轉化爲json對像 System. out .println( "name:" +jsonobj.getString( "name" )+ ",age:" +jsonobj.getInt("age")); 輸入結果: name:james,age:29---------------------------------【json字符串和新建方法相似】 (2)把json數組形式的字符串轉化爲json數組,再解析出來 // [{"name":"olay","age":21},{"name":"james","age":22},{"name":"kobe","age":34}] response.setContentType( "application/json" ); //服務器響應的類型 String jsondata = request.getParameter( "testJsonArray" ); //獲取傳過來的json字符串 System.out.println(jsondata); // [{"name":"olay","age":21},{"name":"james","age":22},{"name":"kobe","age":34}]---必須是格式「[ { } ]」 JSONArray jsonArray = JSONArray.fromObject(jsondata); //轉化爲json數組-------JSONArray對象獲得數組 for ( int i=0;i<jsonArray.size();i++){ //遍歷json數組 JSONObject obj = JSONObject.fromObject(jsonArray.get(i));//轉化爲json對象---------json字符串解析 System. out .println( "name:" +obj.getString( "name" )+ ",age:" +obj.getInt( "age" )); }
(3)java中lst集合轉爲爲json數組
User user1 = new User(); user1.setName( "james" ); user1.setAge(29); User user2 = new User(); user2.setName( "olay" ); user2.setAge(22); List list = new ArrayList (); list.add(user1) ; list.add(user2) ; JSONArray arr = JSONArray. fromObject (list); // lst集合轉爲爲json數組 System. out .println(arr); // [{"age":29,"name":"james"},{"age":22,"name":"olay"}]
(4)java中Map集合轉化爲json二位數組
Student student = new Student(); student.setName( "張三" ); student.setAge(15); student.setSex( "男" ); Teacher teacher = new Teacher(); teacher.setName( "梨花" ); teacher.setAge(29); teacher.setSex( "女" ); Map map = new HashMap (); map.put( "student" , student) ; map.put( "teacher" , teacher) ; JSONArray arrMap = JSONArray. fromObject (map); // Map集合轉化爲json二位數組 System.out.println(arrMap); // [{"student":{"age":15,"name":"張三","sex":"男"},"teacher":{"age":29,"name":"梨花","sex":"女"}}]