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); |