JSON-lib是一个使用简单、开放源码的Java工具包。使用它可以将Java的pojo对象方便的转换为JSON格式字符串,并能够把JSON转换为pojo对象。
运行JSON-lib-2.2.1-jdk15.jar需要的支持类库包括:
・commons-beanutils-1.7.0
・commons-collections-3.2
・commons-lang-2.5
・commons-logging-1.1.1
・ezmorph-1.0.3
使用JSON-lib进行开发的简单步骤。
第一步:创建需要装换的Java类
public class Person{
private String name;
private int age;
private PhoneNumber homePhone;
private PhoneNumber officePhone;
public Person(String name,int age,PhoneNumber homePhone,PhoneNumber officePhone){
super();
this.name = nema;
this.age = age;
this.homePhone=homePhone;
this.officePhone=officePhone;
}
}
public class PhoneNumber{
private String type;
private String number;
public PhoneNumber(String type,String number){
super();
this.type = type;
this.number = number;
}
}
*********************************
注意:JSON-lib不能直接读取Java类的私有属性,因此需要设置对应的set、get方法
*********************************
第二步:建立JsonLibTest测试类
测试类演示了使用JSON-lib生成JSON字符串形式。
public class JsonLibTest{
public static void main(String args[]){
PhoneNumber homePhone = new PhoneNumber("宅电","123456");
PhoneNumber officePhone = new PhoneNumber("办公电话","654321");
Person person = new Person("tom",20,homePhone,officePhone);
JSONObject json = new JSONObject.fromObject(person);
String jsonStr = json.toString();
System.out.println(jsonStr);
}
}
第三步:输出JSON格式数据
第四步:定义工具方法
为了使生成的JSON数据格式满足ExtJs的要求,需要创建一个保存原始数据的Java类TotalJson
public class TotalJson{
private long results;//记录总数
private List items;//数据列表
//省略set、get方法
}
public static String getJsonFormList(long recordTotal,List beanList){
TotalJson total = new TotalJson();
total.setResults(recordTotal);
total.setItems(beanList);
JSONObject jsonArray = JSONObject.fromObject(total);
return jsonArray.toString();
}
第五步:测试工具类ExtHelper的getJsonFromList方法
public class JsonListTest{
public static void main(String args[]){
PhoneNumber homePhone = new PhoneNumber("宅电","123456");
PhoneNumber officePhone = new PhoneNumber("办公电话","654321");
List phoneList = new ArrayList();
phoneList.add(homePhone);
phoneList.add(officePhone);
String jsonStr = ExtHelper.getJsonFromList(phoneList.size,phoneList);
System.out.println(jsonStr);
}
}