Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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
Java没有从list.toArray()返回数组对象_Java_Arrays_Json_List - Fatal编程技术网

Java没有从list.toArray()返回数组对象

Java没有从list.toArray()返回数组对象,java,arrays,json,list,Java,Arrays,Json,List,我有一门电影课 具有private List reviews=new ArrayList() 关于我设置的构造函数 public Movie() { this.reviews.add(""); } 当我尝试将其添加到JSON对象时 JSONObject.put("reviews", this.reviews.toArray(new String[reviews.size()])); 我检查了JSON文件,它返回了“评论”:[Ljava.lang.String;@5cad8086] 这

我有一门
电影
课 具有
private List reviews=new ArrayList()

关于我设置的构造函数

public Movie()
{
    this.reviews.add("");
}
当我尝试将其添加到
JSON
对象时

JSONObject.put("reviews", this.reviews.toArray(new String[reviews.size()]));
我检查了
JSON
文件,它返回了
“评论”:[Ljava.lang.String;@5cad8086]

这里发生了什么?我想在“reviews”字段中放入一个评论数组,如
{“reviews”:[“somestring1”,“somestring2”]}

您必须使用:


Arrays.toString(this.reviews.toArray(新字符串[reviews.size()])

json simple显然不支持将数组类型直接添加到
JSONObject
。当将
JSONObject
呈现为
字符串时,它只需对其值调用
toString
JSONObject
是一个
HashMap

因此,您将看到在数组类型上调用
toString
的默认
String
结果。看

使用json simple最合适的解决方案是从
列表中创建
JSONArray
对象并添加该对象

JSONArray array = new JSONArray();
array.addAll(reviews);
JSONObject.put("one", array);
假设
JSONObject
是引用
JSONObject
对象的变量



最后,我认为json simple是一个糟糕的json解析器/生成器库。在Gson、Jackson甚至org.json中都有更好的选择。

什么是
JSONObject
?它是一个JSONObject,put方法分别接受字段和值作为参数。您是在创建json文件,还是在使用某个库?从哪个库?它的哪个版本?为什么会有否决票?这似乎生成了
“评论”:“[myString]”而不是
“评论”:[{“myReviewString1”},{myReviewString2}]
@MaTaKazer你刚才发布的是无效的json。我想要的是
{“评论”:[“somestring1”,“somestring2”}