我有这样的课程:
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对象?
答案 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“。
根据文档,它会在您的情况下失败,因为您没有通过获取和设置器公开这些属性。