Gson数组字符串到JsonArray

时间:2012-05-08 11:48:54

标签: java json gson

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

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

问题是add方法只需要JsonElement

我尝试将字符串转换为JsonElement,但这不起作用。

如何使用Gson进行操作?

4 个答案:

答案 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。它还扩展了对添加BooleanCharacterNumber等的支持(请参阅更多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" });

瞧!