Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用org.JSON库将Java对象转换为JSON_Java_Org.json - Fatal编程技术网

使用org.JSON库将Java对象转换为JSON

使用org.JSON库将Java对象转换为JSON,java,org.json,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; } 有没有简单的方法可以用org.JSON将Class1的实例转换为JSON对象?我认为使用org.JS

我有这样的课:

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

我认为使用org.JSON.lib的构造函数是您需要的。它将根据Java对象的getter从Java对象构造一个JSONObject。然后,您可以使用JSONObject#toString获得实际生成的Json

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

虽然JSONObject是一种方法,但您需要遵循其JavaDoc中关于bean属性的说明:

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


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

他的bean没有任何公共访问器方法,因此JSONObject将无法获得他的属性。这是真的。我想这可能是一个错误的假设,我认为他们只是为了简洁而被排除在外。@Buffalo,你的链接是404。