日期:2014-05-16  浏览次数:20386 次

json-lib包笔记
json-lib.jar开发包使用:

依赖包:
commons-beanutils.jar;
commons-httpclient.jar;
commons-lang.jar;
ezmorph.jar;不少人使用时会提示net.sf.ezmorph.xxx找不到,就是缺这个:
morph-1.0.1.jar

相关链接:
http://json-lib.sourceforge.net/
http://ezmorph.sourceforge.net/
http://morph.sourceforge.net/

使用过程中问题:
1,把bean转化为json格式时老提示如下错误:
Exception in thread "main" net.sf.json.JSONException: java.lang.NoSuchMethodException: Property 'name' has no getter method
解决:声明bean为public class xxx,必须是public,我用默认类型(class xxx)都不行

2,Exception in thread "main" java.lang.NoSuchMethodError: org.apache.commons.lang.ArrayUtils.toObject([C)[Ljava/lang/Character;
原因:定义属性如下:private char[] options = new char[] { 'a', 'f' };好像不能处理这种类型的

3, private String func1 = "function(i){ return this.options[i]; }";
   和
   private JSONFunction func2 = new JSONFunction(new String[] { "i" },
     "return this.options[i];");
   转换后显示结果差不多:
   {"func1":function(i){ return this.options[i];,"func2":function(i){ return this.options[i]; }}

测试类:

1.import java.util.ArrayList;  
2.import java.util.HashMap;  
3.import java.util.List;  
4.import java.util.Map;  
5.  
6.import net.sf.json.JSONArray;  
7.import net.sf.json.JSONObject;  
8.  
9.public class Json {  
10.    public static void main(String[] args) {  
11.        Json j = new Json();  
12.        j.bean2json();  
13.    }  
14.  
15.    public void arr2json() {  
16.        boolean[] boolArray = new boolean[] { true, false, true };  
17.        JSONArray jsonArray = JSONArray.fromObject(boolArray);  
18.        System.out.println(jsonArray);  
19.        // prints [true,false,true]  
20.    }  
21.  
22.    public void list2json() {  
23.        List list = new ArrayList();  
24.        list.add("first");  
25.        list.add("second");  
26.        JSONArray jsonArray = JSONArray.fromObject(list);  
27.        System.out.println(jsonArray);  
28.        // prints ["first","second"]  
29.    }  
30.  
31.    public void createJson() {  
32.        JSONArray jsonArray = JSONArray.fromObject("['json','is','easy']");  
33.        System.out.println(jsonArray);  
34.        // prints ["json","is","easy"]  
35.    }  
36.  
37.    public void map2json() {  
38.        Map
39.        map.put("name", "json");  
40.        map.put("bool", Boolean.TRUE);  
41.        map.put("int", new Integer(1));  
42.