我正在使用Gson,尝试像这样将一堆字符串值添加到JsonArray
中:
JsonArray jArray = new JsonArray();
jArray.add("value1");
问题在于add方法只接受一个JsonElement
。
我尝试将一个字符串强制转换为JsonElement
,但是没有成功。
如何使用Gson实现?
你可以创建一个原始类型,将其包含字符串值并将其添加到数组中:
JsonArray jArray = new JsonArray();
JsonPrimitive element = new JsonPrimitive("value1");
jArray.add(element);
字符串
。它还扩展了对添加布尔值
、字符
、数字
等的支持(在此处查看更多信息:这里)。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" });
Voila!