转换对象到Json时,Java JsonObject会丢失字段

时间:2013-07-04 08:31:01

标签: java json

在java-json.jar中,我尝试将对象转换为json。我的问题是我有一个在Object中设置的数组列表,但当我将其转换为json时,它不显示Json中的列表。

JSONObject facebookJson = new JSONObject(facebook);
       user = facebookJson.toString();

当我调试时,我看到该列表是在facebook对象中设置的。我想知道为什么会发生这种情况

1 个答案:

答案 0 :(得分:2)

您的对象facebook需要每个字段都有一个吸气剂。看一下文档:

  

public JSONObject(java.lang.Object bean)

     

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

你也可以使用JSONObject的其他构造函数,在它可以从你想要创建JSON的地方访问该字段的情况下传递它的字段名称(小心这里,它可以打破封装):

  

public JSONObject(java.lang.Object对象,                     java.lang.String [] names)

     

从Object构造一个JSONObject,使用反射来查找公共成员。该   结果JSONObject的键将是来自names数组的字符串,   并且值将是与这些键关联的字段值   物体。如果找不到或看不到密钥,那么它就不会出现   复制到新的JSONObject。