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库,现在我们也可以添加字符串。 它还扩展了对添加布尔,字符,数字等的支持。
现在使用它对我有用:
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" });
瞧!