我有一个movie
课程
那有一个private List<String> reviews = new ArrayList<String>();
在我设置的构造函数
上public Movie()
{
this.reviews.add("");
}
当我尝试将其添加到JSON
对象时,
JSONObject.put("reviews", this.reviews.toArray(new String[reviews.size()]));
我检查了JSON
文件并返回"reviews":[Ljava.lang.String;@5cad8086]
这里发生了什么?我想在“{"reviews" : ["somestring1", "somestring2"]}
答案 0 :(得分:0)
json-simple显然不支持直接向JSONObject
添加数组类型。将JSONObject
呈现为String
时,只需在其值上调用toString
(JSONObject
为HashMap
)。
因此,您会看到在数组类型上调用String
的默认toString
结果。见
使用json-simple的最合适的解决方案是从JSONArray
创建List
对象并添加
JSONArray array = new JSONArray();
array.addAll(reviews);
JSONObject.put("one", array);
假设JSONObject
是引用JSONObject
对象的变量。
我认为json-simple是一个糟糕的JSON解析器/生成器库。在Gson,Jackson甚至org.json中有更好的选择。
答案 1 :(得分:-1)
你必须使用它:
Arrays.toString(this.reviews.toArray(new String[reviews.size()]));