json-lib的應用
一、概述
apache提供的json-lib小工具,它可以友善的使用Java語言來建立JSON字元串。也可以把JavaBean轉換成JSON字元串。
二、核心類
在json-lib中隻有兩個核心類:
1, JSONObject;
2,JSONArray;
三、JSONObject
JSONObject類本身是一個Map
用法1:當map用
Java Code
1 2 3 4 5 6 7 | JSONObject jo = new JSONObject(); jo.put( "name", "zhangSan"); jo.put( "age", "18"); jo.put( "sex", "male"); System.out.println(jo.toString()); 結果: { "name": "zhangSan", "age": "18", "sex": "male"} |
用法2:把Javabean轉化成json
Java Code
1 2 3 4 | Person person = new Person( "liSi", 18, "female"); JSONObject jo = JSONObject.fromObject(person); System.out.println(jo.toString()); |
用法3:把map轉換成json
Java Code
1 2 3 4 5 6 7 8 | Map map = new HashMap(); map.put( "name", "wangWu"); map.put( "age", "81"); map.put( "sex", "male"); JSONObject jo = JSONObject.fromObject(map); System.out.println(jo.toString()); |
用法4:把xml轉換成json,需要導入xom-1.1.jar
Java Code
1 2 3 4 5 | String xml = "<person><name>zhaoLiu</name><age>59</age><sex>female</sex></person>"; XMLSerializer serial = new XMLSerializer(); JSONObject jo = (JSONObject)serial.read(xml); System.out.println(jo.toString()); |
四、JSONArray
JSONArray本身是一個List
用法1:當成List用
Java Code
1 2 3 4 5 6 7 8 | JSONArray ja = new JSONArray(); Person p1 = new Person( "zhangSan", 18, "male"); Person p2 = new Person( "liSi", 23, "female"); ja.add(p1); ja.add(p2); System.out.println(ja.toString()); |
用法2:把list轉換成JSONArray
Java Code
1 2 3 4 5 6 7 8 9 10 | Person p1 = new Person( "zhangSan", 18, "male"); Person p2 = new Person( "liSi", 23, "female"); List<Person> list = new ArrayList<Person>(); list.add(p1); list.add(p2); JSONArray ja = JSONArray.fromObject(list); System.out.println(ja.toString()); |
用法3:把數組轉換成JSONArray
Java Code
1 2 3 4 5 6 7 8 | Person p1 = new Person( "zhangSan", 18, "male"); Person p2 = new Person( "liSi", 23, "female"); Person[] persons = {p1, p2}; JSONArray ja = JSONArray.fromObject(persons); System.out.println(ja.toString()); |
五、拓展
伺服器發送過來JSON字元串後,用戶端需要對其進行解析。這時用戶端需要使用eval()方法對JSON字元串進行執行!但要注意,eval()方法在執行JSON時,必須把JSON字元串使用一對圓括号括起來。
Java Code
1 2 3 4 | var json = "{\"name\ ":\"zhangSan\ ", \"age\ ":\"18\ ", \"sex\ ":\"male\ "}"; var person = eval( "(" + json + ")"); alert(person.name + ", " + person.age + ", " + person.sex); |