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”}