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

来源:互联网 发布:油漆调色软件 编辑:程序博客网 时间:2024/06/04 05:15
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字符串的简单例子: 
Java代码  收藏代码
  1. public static void main(String args[]){  
  2.         //生成一个JSONObject对象  
  3.         String data = "{}";  
  4.         JSONObject jsonObj = JSONObject.fromObject(data);  
  5.           
  6.         //1.put 基本类型值  
  7.         int i=0;  
  8.         for(i=0; i<5; i++){  
  9.             jsonObj.put("id"+i, i);  
  10.         }  
  11.         System.out.println(jsonObj.toString());  
  12.           
  13.         //2.put 一个JSONObject对象  
  14.         JSONObject obj1 = JSONObject.fromObject(data);  
  15.         for(i=0; i<5; i++){  
  16.             obj1.put("child"+i, i);  
  17.         }  
  18.         jsonObj.put("JSONObject", obj1);  
  19.         System.out.println(jsonObj.toString());  
  20.           
  21.         //3.put 数组  
  22.         String[] strArr = new String[]{"加","数","组"};  
  23.         jsonObj.put("arr", strArr);  
  24.         System.out.println(jsonObj.toString());  
  25.           
  26.         //4.put List  
  27.         List<String> list = new ArrayList<String>();  
  28.         list.add("加");  
  29.         list.add("列");  
  30.         list.add("表");  
  31.         jsonObj.put("list", list);  
  32.         System.out.println(jsonObj.toString());  
  33.           
  34.         //5.put Set  
  35.         Set<String> set = new HashSet<String>();  
  36.         set.add("加");  
  37.         set.add("集");  
  38.         set.add("合");  
  39.         jsonObj.put("set", set);  
  40.         System.out.println(jsonObj.toString());  
  41.           
  42.         //6.put Map  
  43.         Map<String,Object> map = new HashMap<String, Object>();  
  44.         map.put("map1""加");  
  45.         map.put("map2""映");  
  46.         map.put("map3""射");  
  47.         jsonObj.put("map", map);  
  48.         System.out.println(jsonObj.toString());  
  49.           
  50.         //7.putAll Map  
  51.         jsonObj.putAll(map);  
  52.         System.out.println(jsonObj.toString());  
  53.           
  54.         //8.组合: (返回的结果value是一个对象数组)   
  55.         List<JSONObject> jlist = new ArrayList<JSONObject>();  
  56.         JSONObject j = null;  
  57.         for(i=0; i<3; i++){  
  58.             j = JSONObject.fromObject(data);  
  59.             j.put("aaaa"+i, i);  
  60.             j.put("bbbb"+i, i);  
  61.             j.put("cccc"+i, i);  
  62.             jlist.add(j);  
  63.         }  
  64.         jsonObj.put("succList", jlist);  
  65.         System.out.println(jsonObj.toString());  
  66.           
  67.         //9.组合 : (返回的结果value是一个对象数组,对象的某个属性又是一个对象(嵌套))   
  68.         List<JSONObject> jlist1 = new ArrayList<JSONObject>();  
  69.         for(i=0; i<3; i++){  
  70.             j = JSONObject.fromObject(data);  
  71.             j.put("xxxx"+i, i);  
  72.             j.put("yyyy"+i, i);  
  73.             j.put("zzzz"+i, obj1);  
  74.             jlist1.add(j);  
  75.         }  
  76.         jsonObj.put("failList", jlist1);  
  77.         System.out.println(jsonObj.toString());  
  78.           
  79.         //10.组合: 可以任意嵌套  
  80.         JSONObject superJson = JSONObject.fromObject(data);  
  81.         superJson.put("super", jsonObj);  
  82.         superJson.put("base""base");  
  83.         System.out.println(superJson.toString());  
  84.     }  
原创粉丝点击