在这里主要简单的介绍一下,如何使用json-lib这个工具包来完成Java对象(或集合)与json对象(或集合)之间的转换~
1. Java对象转换成json(既创建json)
关键类:JSONObject jsonObject = JSONObject.from(Object obj);
使用说明:只要将Java对象传入方法,那么便可以得到一个JSONObject,然后你便可以直接json.toString();输出json~
例子:
@Test public void testCreateJson() throws Exception { Employee employee = new Employee("zhangSan", "12"); JSONObject jsonObject = JSONObject.fromObject(employee); System.out.println(jsonObject.toString()); }
输出结果:
{"age":"12","name":"zhangSan"}
由上面的输出结果可以看出,JSONObject输出的json对象的属性之间的顺序是无序的~
2. 字符串转换成Java对象(既解析json)
关键类:JSONObject json = new JSONObject(String jsonString);
json.get(String key); //根据key来获取值。key对Java对象来说就是属性名,value就是属性值
使用说明:首先将json字符串传入JSONObject对象的构造函数中,得到一个JSONObject对象,再通过该对象进行获取相应的数据,从而构造出一个Java对象。
例子:
@Test public void testParseJson(){ String jsonString = "{\"age\":\"12\",\"name\":\"zhangSan\"}"; JSONObject json = new JSONObject().fromObject(jsonString); System.out.println(json.get("name")); System.out.println(json.get("age")); }
输出结果:
zhangSan
12
附录:Employee代码的具体实现
public class Employee { private String name; private String age; public String getName() { return name; } public String getAge() { return age; } public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public Employee(String name, String age) { super(); this.name = name; this.age = age; } public Employee() { super(); } @Override public String toString() { return "[name="+name+",age="+age+"]"; } }
延伸阅读: