[英]Java not returning array object from list.toArray()
我有一個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"]}
json-simple顯然不支持將數組類型直接添加到JSONObject
。 將JSONObject
呈現為String
,它僅在其值上調用toString
( JSONObject
是HashMap
)。
這樣,您將看到在數組類型上調用toString
的默認String
結果。 看到
使用json-simple的最合適的解決方案是從您的List
創建一個JSONArray
對象並添加
JSONArray array = new JSONArray();
array.addAll(reviews);
JSONObject.put("one", array);
假設JSONObject
是引用JSONObject
對象的變量。
最后,我認為json-simple是一個糟糕的JSON解析器/生成器庫。 在Gson,Jackson甚至org.json中,還有更好的選擇。
您必須使用此:
Arrays.toString(this.reviews.toArray(new String[reviews.size()]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.