32

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

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

问题是 add 方法只需要一个JsonElement.

我试图将 String 转换为 a JsonElement,但没有奏效。

我如何使用 Gson 进行操作?

4

4 回答 4

71

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

JsonArray jArray = new JsonArray();
JsonPrimitive element = new JsonPrimitive("value1");
jArray.add(element);
于 2012-05-08T11:56:37.907 回答
4

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

于 2012-05-08T11:51:59.777 回答
4

对于较新版本的 Gson 库,现在我们也可以添加Strings。它还扩展了对添加Boolean,Character等的支持(在此处Number查看更多信息)

现在使用它对我有用:

JsonArray msisdnsArray = new JsonArray();
for (String msisdn : msisdns) {
    msisdnsArray.add(msisdn);
}
于 2017-01-11T09:52:46.177 回答
2

I was hoping for something like this myself:

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

But unfortunately that isn't supported by GSON so I created this helper:

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);
}

And then use it like so:

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

Voila!

于 2016-11-02T16:36:26.697 回答