首页 > 代码库 > Json体验之——Json-lib使用浅谈(二)

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

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

 


 

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

1     // 将string转换成json2     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()。

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