Java object to JSON with org.json lib

2022-09-03 17:23:48

我有这样的课程:

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 对象?


答案 1

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

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

答案 2

虽然 JSONObject 是要走的路,但您需要遵循其 JavaDoc 对 Bean 属性的看法:

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

根据文档,它在你的案例中会失败,因为你没有通过 gets 和 setter 公开这些属性。


推荐