12

我有这样的课:

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

警报在哪里是这样的类:

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

有没有简单的方法可以使用 org.json 将 Class1 的实例转换为 JSON 对象?

4

2 回答 2

28

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

JSONObject jsonObject = new JSONObject(instanceOfClass1);
String myJson = jsonObject.toString();
于 2011-08-11T12:21:58.717 回答
7

虽然 JSONObject 是要走的路,但您需要遵循其 JavaDoc 关于 bean 属性的说明:

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

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

于 2011-08-11T12:24:16.017 回答