json-lib-2.4-jdk15.jar组装json字符串json-lib官网:http://json-lib.sourceforge.net/Json-lib requires
json-lib-2.4-jdk15.jar 组装json字符串
json-lib官网:http://json-lib.sourceforge.net/
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要高很多(我自己测试得出的结论!)。
综合考虑,结论:能用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 ListList<String> list = new ArrayList<String>();list.add("加");list.add("列");list.add("表");jsonObj.put("list", list);System.out.println(jsonObj.toString());//5.put SetSet<String> set = new HashSet<String>();set.add("加");set.add("集");set.add("合");jsonObj.put("set", set);System.out.println(jsonObj.toString());//6.put MapMap<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 MapjsonObj.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());} 