Json体验之——Json-lib使用浅谈(二)

这一部分主要讲解使用json-lib包将java数据类型转换成json的数据类型,也就是java——>json。

 


 

首先介绍JSONSerializer,它使用i简单干净的接口方式将任何java与json直接进行转换,java——>json,使用JSONSerializer.toJSON(),json——>java 使用toJava()。

1     // 将string转换成json
2     String s1 = new String("{1:1}");
3     String s2 = new String("[1,1]");
4     JSONObject json1 = (JSONObject) JSONSerializer.toJSON(s1);
5     System.out.println("——用JSONSerializer将string转换json——" + json1);
6     JSONArray json2 = (JSONArray) JSONSerializer.toJSON(s2);
7     System.out.println("——用JSONSerializer将string转换jsonArray——" + json2);

 显示结果

1 ——用JSONSerializer将string转换json——{"1":1}
2 ——用JSONSerializer将string转换jsonArray——[1,1]

 

将java数组和集合转换成json

 1     // Working with arrays and collections,——>json
 2     boolean[] booleanArray = new boolean[] { true, false, true };
 3     JSONArray fromObject = JSONArray.fromObject(booleanArray);
 4     System.out.println(fromObject);
 5 
 6     List list = new ArrayList();
 7     list.add("first");
 8     list.add("second");
 9     JSONArray fromObject2 = JSONArray.fromObject(list);
10     System.out.println(fromObject2);    

结果

1 [true,false,true]
2 ["first","second"]

将beans和map转换成json

 1       // Working with objects
 2         // From Beans & Maps toJSON
 3         Map map = new HashMap();
 4         map.put("name", "json");
 5         map.put("bool", Boolean.TRUE);
 6         map.put("int", new Integer(1));
 7         map.put("arr", new String[] { "a", "b" });
 8         map.put("func", "function(i){ return this.arr[i]; }");
 9 
10         JSONObject jsonObject2 = JSONObject.fromObject(map);
11         System.out.println("——map转换json——\n" + jsonObject2);

结果

1 ——map转换json——
2 {"arr":["a","b"],"int":1,"name":"json","func":function(i){ return this.arr[i]; },"bool":true}

beans转换先自定义对象Mybean,

 1 public class MyBean {
 2 
 3     private String name = "json";
 4     private int pojoId = 1;
 5     private char[] options = new char[] { ‘a‘, ‘f‘ };
 6     private String func1 = "function(i){ return this.options[i]; }";
 7     private JSONFunction func2 = new JSONFunction(new String[] { "i" },
 8             "return this.options[i];");
 9      //自定义类型
10     private MyBean2 mybean2 = new MyBean2("1", "mybean");
11 
12     public String getName() {
13         return name;
14     }
15     public void setName(String name) {
16         this.name = name;
17     }
18     public int getPojoId() {
19         return pojoId;
20     }
21     public void setPojoId(int pojoId) {
22         this.pojoId = pojoId;
23     }
24     public char[] getOptions() {
25         return options;
26     }
27     public void setOptions(char[] options) {
28         this.options = options;
29     }
30     public String getFunc1() {
31         return func1;
32     }
33     public void setFunc1(String func1) {
34         this.func1 = func1;
35     }
36     public JSONFunction getFunc2() {
37         return func2;
38     }
39     public void setFunc2(JSONFunction func2) {
40         this.func2 = func2;
41     }
42     public MyBean2 getMybean2() {
43         return mybean2;
44     }
45     public void setMybean2(MyBean2 mybean2) {
46         this.mybean2 = mybean2;
47     }
48 }

Mybean中包含自定义对象Mybean2

public class MyBean2 {
    private String id;
    private String name;

    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public MyBean2(String id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    public MyBean2() {
        super();
    }
}

将beans转换为json

1     // 自定义MyBean对象中包含MyBean2对象,所以bean——>Json,无论是否自定义对象,都可以转换json格式
2         JSONObject jsonObject3 = JSONObject.fromObject(new MyBean());
3         System.out.println("——beans转换json——\n" + jsonObject3);

结果

1 ——beans转换json——
2 {"name":"json","mybean2":{"id":"1","name":"mybean"},"pojoId":1,"func1":function(i){ return this.options[i]; },"func2":function(i){ return this.options[i]; },"options":["a","f"]}

 


 

总结:将java对象转换成json,比较简单,若是beans或maps用JSONObject.fromObject() ,若是array或collections,用JSONArray.fromObject()。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。