2012-05-08 37 views
24

我使用GSON,我試圖一串字符串值添加到JsonArray這樣的:GSON Array對JsonArray

JsonArray jArray = new JsonArray(); 
jArray.add("value1"); 

的問題是,add方法只需要JsonElement

我試圖將一個字符串投入到JsonElement但這沒有奏效。

我該如何使用Gson?

回答

61

您可以創建一個原始的這種意願包含字符串值,並將其添加到陣列:

JsonArray jArray = new JsonArray(); 
JsonPrimitive element = new JsonPrimitive("value1"); 
jArray.add(element); 
+6

爲什麼會這樣** **得離譜有悖常理? – allidoiswin

+0

爲什麼文檔告訴我們有一個JsonArray.add(String)?!? –

3

看起來像你應該做一個new JsonPrimitive("value1")並補充說。 見The javadoc

0

我希望這樣的事情自己:

JsonObject jo = new JsonObject(); 
jo.addProperty("strings", new String[] { "value1", "value2" }); 

但不幸的ISN不支持GSON,所以我創建了這個幫手:

public static void Add(JsonObject jo, String property, String[] values) { 
    JsonArray array = new JsonArray(); 
    for (String value : values) { 
     array.add(new JsonPrimitive(value)); 
    } 
    jo.add(property, array); 
} 

然後像這樣使用它:

JsonObject jo = new JsonObject(); 
Add(jo, "strings", new String[] { "value1", "value2" }); 

瞧!