json-lib的应用

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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值