2013-07-04 53 views
1

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

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

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

+1

请提供更多代码。你在谈论哪些领域。什么是'脸谱'? –

+0

你是否有'facebook'对象中每个字段的getters? –

+0

我只为每个领域设置了setter – jackyesind

回答

1

您的对象facebook需要每个字段的吸气剂。看看在文档:

公众的JSONObject(java.lang.Object中豆)

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

您也可以使用其他的构造函数的JSONObject的,它传递的字段的名称的情况下,这一领域是访问要创建JSON(这里小心,它可以打破封装):

公共的JSONObject(java.lang.Object中对象, java.lang.String中[]名称)

从物体构造一个JSONObject,使用反射来找到公共成员。生成JSONObject的键的 将是来自名称数组 的字符串,并且值将是与对象中的那些键相关联的字段值。如果某个键未找到或不可见,则不会将 复制到新的JSONObject中。