一、jar
1.commons-lang.jar
2.commons-beanutils.jar
3.commons-collections.jar
4.commons-logging.jar
5.ezmorph.jar
6.json-lib-2.2.2-jdk15.jar
二、
有了json-lib包 我们可以方便讲json信息与object之间进行转换。
主要用到JSONObject 和JSONArray。
先看看它们的申明。
public final class JSONObject extends AbstractJSON
implements JSON, Map, Comparable
{
//..
}
public final class JSONArray extends AbstractJSON
implements JSON, List, Comparable
{
//..
}
由此可见2者的区别在于Map和List的区别。
我们先创建一个Person pojo
public class Person {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return this.id + "," + this.name + "," + this.age;
}
}
我们先用JSONObject做个一个json数据转换为Person的demo。
public class JSONObjectTest {
public static void main(String[] args) {
String str = "{id:'101',name:'小明',age:'11'}";
JSONObject obj = JSONObject.fromObject(str);
Person jo = new Person();
jo = (Person) JSONObject.toBean(obj, Person.class);
System.out.println(jo);
}
}
我们的输出结果为:“101,小明,11”
由此可见我们顺利的将JSON数据 "{id:'101',name:'小明',age:'11'}"转换成了一个id=101,name="小明",age=11的Person对象。
这里的JSONObject 并不一定要通过json数据fromObject生成。
JSONObject obj = new JSONObject();
obj.put("id", "101");
obj.put("name", "小明");
obj.put("age", "11");
此处与上端代码产生的JSONObject的效果一致。
打印obj为{"id":"101","name":"小明","age":"11"}返回的json字符串。