我正在使用Gson并尝试将一堆字符串值添加到JsonArray
中,如下所示:
JsonArray jArray = new JsonArray();
jArray.add("value1");
问题是add方法只需要JsonElement
。
我尝试将字符串转换为JsonElement
,但这不起作用。
如何使用Gson进行操作?
答案 0 :(得分:66)
您可以创建一个包含String值的基元并将其添加到数组中:
JsonArray jArray = new JsonArray();
JsonPrimitive element = new JsonPrimitive("value1");
jArray.add(element);
答案 1 :(得分:4)
好像你应该制作new JsonPrimitive("value1")
并添加它。
见The javadoc
答案 2 :(得分:3)
对于较新版本的Gson库,现在我们也可以添加Strings
。它还扩展了对添加Boolean
,Character
,Number
等的支持(请参阅更多here)
现在使用它对我有用:
JsonArray msisdnsArray = new JsonArray();
for (String msisdn : msisdns) {
msisdnsArray.add(msisdn);
}
答案 3 :(得分:1)
我希望自己能做到这样的事情:
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" });
瞧!