Gson数组字符串到JsonArray

我正在使用Gson,我正在尝试将一堆字符串值添加到JsonArray如下所示:

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

问题是add方法只接受JsonElement

我试图将一个String转换为一个JsonElement但是没有用。

我如何使用Gson做到这一点?

您可以创建一个包含String值的基元并将其添加到数组中:

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

好像你应该创建一个new JsonPrimitive("value1")并添加它。 请参阅javadoc

对于较新版本的gson库,现在我们也可以添加字符串。 它还扩展了对添加布尔,字符,数字等的支持。

https://static.javadoc.io/com.google.code.gson/gson/2.6.2/com/google/gson/JsonArray.html#add-java.lang.String-

现在使用它对我有用:

 JsonArray msisdnsArray = new JsonArray(); for(String msisdn : msisdns) { msisdnsArray.add(msisdn); } 

我自己希望这样的事情:

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

但不幸的是,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" }); 

瞧!