簡體   English   中英

Java不從list.toArray()返回數組對象

[英]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 ,它僅在其值上調用toStringJSONObjectHashMap )。

這樣,您將看到在數組類型上調用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM