Json-lib使用——JSONObject与JSONArray

!!!注意 如果用 StringBuilder a

JSONArray json= JSONArray.fromObject(a,jsonConfig);

的话会出现 无法 成功转换 json为[{}]  但不报错  即使 a的格式是正确的。

必须把a转换成String

 

1.从Object到String
 要先用Object对象构造一个JSONObject或者JSONArray对象,然后调用它的toString()方法即可

(1)示例一

1 Book book=new Book();
2 book.setName("Java");
3 book.setPrice(52.3f);
4 JSONObjectobject=JSONObject.fromObject(book);
5 System.out.println(object.toString());


(2)示例二

 
 1         Book book=new Book();
 2         book.setName("Java");
 3         book.setPrice(52.3f);
 4        
 5         Book book2=new Book();
 6         book2.setName("C");
 7         book2.setPrice(42.3f);
 8         List list=new ArrayList();
 9         list.add(book);
10        list.add(book2);
11        JSONArray arry=JSONArray.fromObject(list);
12        System.out.println(arry.toString());
13 //结果如下:
14[{"name":"Java","price":52.3},{"name":"C","price":42.3}]


 

2.从String到Object
 要先用String对象构造一个JSONObject或者JSONArray对象
(1)示例一 

1 String json="{name:'Java',price:52.3}";   
2 JSONObjectobject=JSONObject.fromObject(json);
3System.out.println(object.get("name")+""+object.get("price"));


(2)示例二

 

1 Stringjson="[{name:'Java',price:52.3},{name:'C',price:42.3}]";
2 JSONArray array=JSONArray.fromObject(json);
3 for(int i=0;i<array.size();i++){
4    Map o=(Map)array.get(i);
5    System.out.println(o.get("name")+""+o.get("price"));
6 }


 

3.从String到Bean

(1)单个Bean对象

1        Stringjson="{name:'Java',price:52.3}";
2        JSONObject object=JSONObject.fromObject(json);
3        Product product=(Product)JSONObject.toBean(object,Product.class);
4        System.out.println(product.getName()+" "+product.getPrice());


(2).Bean的数组

 
1        String json="[{name:'Java',price:52.3},{name:'C',price:42.3}]";
2        JSONArray array=JSONArray.fromObject(json);
3        Product[] products=(Product[]) JSONArray.toArray(array,Product.class);
4        for(Product p:products){
5            System.out.println(p.getName()+" "+p.getPrice());
6        }


 

自定义封装JSON操作的类

 
 1 packagecom.util;
 2
 3 importjava.util.List;
 4 importjava.util.Map;
 5
 6 importnet.sf.json.JSONArray;
 7 importnet.sf.json.JSONObject;
 8
 9 publicclass JsonHelper {
10    //从普通的Bean转换为字符串
11    public static String getJson(Object o){
12        JSONObject jo=JSONObject.fromObject(o);
13        return jo.toString();
14    }
15    //从Java的列表转换为字符串
16    public static String getJson(List list){
17        JSONArray ja=JSONArray.fromObject(list);
18        return ja.toString();
19    }
20    //从Java对象数组转换为字符串
21    public static String getJson(Object[] arry){
22        JSONArray ja=JSONArray.fromObject(arry);
23        return ja.toString();
24    }
25    //从json格式的字符串转换为Map对象
26    public static Map getObject(String s){
27        return    JSONObject.fromObject(s);
28    }
29    //从json格式的字符串转换为List数组
30    public static List getArray(String s){
31        return JSONArray.fromObject(s);
32    }
33    //从json格式的字符串转换为某个Bean
34    public static Object getObject(String s,Class cls){
35        JSONObject jo=JSONObject.fromObject(s);
36        return JSONObject.toBean(jo, cls);
37    }
38    //从json格式的字符串转换为某类对象的数组
39    public static Object getArray(String s,Class cls){
40        JSONArray ja=JSONArray.fromObject(s);
41        return JSONArray.toArray(ja, cls);
42    }
43 }



你可能感兴趣的:(java,StringBuilder,ArrayList)