使用org.json lib的Java对象到JSON

时间:2011-08-11 12:00:02

标签: java org.json

我有这样的课程:

public class Class1 {
    private String result;
    private String ip;
    private ArrayList<Class2> alarm;
}

警报在哪里这样一个类:

public class Class2 {
    private String bla;
    private String bla1;
}

是否有简单的方法将Class1的实例转换为带有org.json的JSON对象?

2 个答案:

答案 0 :(得分:22)

我认为利用org.json.lib的JSONObject(Object)构造函数是你正在寻找的。它将根据Java对象的getter构造一个JSONObject。然后,您可以使用JSONObject#toString来获取实际生成的Json。

JSONObject jsonObject = new JSONObject(instanceOfClass1);
String myJson = jsonObject.toString();

答案 1 :(得分:6)

虽然JSONObject是可行的方法,但您需要遵循JavaDoc关于bean属性的说法:

  

使用bean getter从Object构造一个JSONObject。它反映了   在对象的所有公共方法上。对于每种方法   没有参数,名称以“get”或“is”开头,后跟   一个大写字母,调用该方法,以及一个键和值   从getter方法返回的内容被放入新的JSONObject中。该   通过删除“get”或“is”前缀来形成密钥。如果是第二个   剩下的字符不是大写字母,那么第一个字符就是   转换为小写。例如,如果对象具有名为的方法   “getName”,如果调用object.getName()的结果是“Larry   很好“,然后JSONObject将包含”name“:”Larry Fine“。

根据文档,它会在您的情况下失败,因为您没有通过获取和设置器公开这些属性。