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

Div*_*ers 9 java org.json

我有这样的课:

public class Class1 {
    private String result;
    private String ip;
    private ArrayList<Class2> alarm;
}
Run Code Online (Sandbox Code Playgroud)

警报它的类是这样的:

public class Class2 {
    private String bla;
    private String bla1;
}
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法将orl.json的Class1实例转换为JSON对象?

Buf*_*alo 22

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

JSONObject jsonObject = new JSONObject(instanceOfClass1);
String myJson = jsonObject.toString();
Run Code Online (Sandbox Code Playgroud)


Mik*_*sen 6

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

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

根据文档,它将在您的情况下失败,因为您不通过gets和setter公开这些属性.