json-lib-2.4-jdk15.jar 组装json字符串

json-lib官网:[url]http://json-lib.sourceforge.net/[/url]

Json-lib requires (at least) the following dependencies in your classpath:
jakarta commons-lang 2.5.jar
jakarta commons-beanutils 1.8.0.jar
jakarta commons-collections 3.2.1.jar
jakarta commons-logging 1.1.1.jar
ezmorph 1.0.6.jar
相关的jar包见附件!

对于拼装json字符串:
json-lib功能强大,可以任意嵌套。但是它拼装json字符串效率较低;
自己写的Json工具类,最多只能拼装若干个对象列表数组,功能较弱;但是效率比json-lib要高很多(我自己测试得出的结论!)。
[b]综合考虑,结论[/b]:能用Json工具类的,就用Json工具类;Json工具类实现不了的(那些结构复杂、层次嵌套很多的json字符串),才采用json-lib拼装

下面是用json-lib包组装json字符串的简单例子:
public static void main(String args[]){
//生成一个JSONObject对象
String data = "{}";
JSONObject jsonObj = JSONObject.fromObject(data);

//1.put 基本类型值
int i=0;
for(i=0; i<5; i++){
jsonObj.put("id"+i, i);
}
System.out.println(jsonObj.toString());

//2.put 一个JSONObject对象
JSONObject obj1 = JSONObject.fromObject(data);
for(i=0; i<5; i++){
obj1.put("child"+i, i);
}
jsonObj.put("JSONObject", obj1);
System.out.println(jsonObj.toString());

//3.put 数组
String[] strArr = new String[]{"加","数","组"};
jsonObj.put("arr", strArr);
System.out.println(jsonObj.toString());

//4.put List
List<String> list = new ArrayList<String>();
list.add("加");
list.add("列");
list.add("表");
jsonObj.put("list", list);
System.out.println(jsonObj.toString());

//5.put Set
Set<String> set = new HashSet<String>();
set.add("加");
set.add("集");
set.add("合");
jsonObj.put("set", set);
System.out.println(jsonObj.toString());

//6.put Map
Map<String,Object> map = new HashMap<String, Object>();
map.put("map1", "加");
map.put("map2", "映");
map.put("map3", "射");
jsonObj.put("map", map);
System.out.println(jsonObj.toString());

//7.putAll Map
jsonObj.putAll(map);
System.out.println(jsonObj.toString());

//8.组合: (返回的结果value是一个对象数组)
List<JSONObject> jlist = new ArrayList<JSONObject>();
JSONObject j = null;
for(i=0; i<3; i++){
j = JSONObject.fromObject(data);
j.put("aaaa"+i, i);
j.put("bbbb"+i, i);
j.put("cccc"+i, i);
jlist.add(j);
}
jsonObj.put("succList", jlist);
System.out.println(jsonObj.toString());

//9.组合 : (返回的结果value是一个对象数组,对象的某个属性又是一个对象(嵌套))
List<JSONObject> jlist1 = new ArrayList<JSONObject>();
for(i=0; i<3; i++){
j = JSONObject.fromObject(data);
j.put("xxxx"+i, i);
j.put("yyyy"+i, i);
j.put("zzzz"+i, obj1);
jlist1.add(j);
}
jsonObj.put("failList", jlist1);
System.out.println(jsonObj.toString());

//10.组合: 可以任意嵌套
JSONObject superJson = JSONObject.fromObject(data);
superJson.put("super", jsonObj);
superJson.put("base", "base");
System.out.println(superJson.toString());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值