2014-10-31 81 views
3

我正在使用gson在Java中創建JSON對象。我試圖讓一個數組包含三個元素:使用Gson創建數組

[ "ONE", "TWO", "THREE" ] 

有了這個代碼:

JsonArray array = new JsonArray(); 
    array.add("ONE"); 
    array.add("TWO"); 
    array.add("THREE"); 

add()只接受JsonElement對象,而不是實際的字符串。


的原因我的印象是我應該能夠做到這一點,是因爲我用打電話過去SimpleJSON與Unity3D一個C#腳本。有了它,我可以做到這一點:

JSONArray ary = new JSONArray(); 
    ary.Add("ONE"); 
    ary.Add("TWO"); 
    ary.Add("THREE"); 

這工作正常。我只是不確定如何用gson來做到這一點。


我知道可以轉換 Java數組成JSON對象:

String[] strings = {"abc", "def", "ghi"}; 
gson.toJson(strings); ==> prints ["abc", "def", "ghi"] 

然而,我想動態createobjects在JsonArray(該Add方法),如我可以與C# 。

回答

1

有一個替代方案可以用List這樣做,這很容易操作。
您可以添加String s到一個List,然後從它創建一個JSON:

List<String> list = new ArrayList<String>(); 
list.add("ONE"); 
list.add("TWO"); 
list.add("THREE"); 

Gson gson = new Gson(); 
String array = gson.toJson(list); 
1

你可以這樣做:

JsonArray array = new JsonArray(); 
array.add(new JsonPrimitive("ONE")); 
array.add(new JsonPrimitive("TWO")); 
array.add(new JsonPrimitive("THREE")); 
1

array.add(gson.toJsonTree( 「1」));