Gson Массив строк в JsonArray

Я использую Gson и пытаюсь добавить несколько строковых значений вJsonArray так

<code>JsonArray jArray = new JsonArray();
jArray.add("value1");
</code>

Проблема в том, что метод add принимает толькоJsonElement.

Я пытался бросить строку вJsonElement но это не сработало.

Как мне это сделать с помощью Gson?

Ответы на вопрос(4)

Я сам надеялся на что-то подобное:

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

new JsonPrimitive("value1") и добавь это. Видеть Джавадок

Strings слишком. Также расширена поддержка добавленияBoolean, Character, Number и т. д. (подробнееВо)

Теперь это работает для меня:

JsonArray msisdnsArray = new JsonArray();
for (String msisdn : msisdns) {
    msisdnsArray.add(msisdn);
}
Решение Вопроса

который будет содержать значение String, и добавить его в массив:

JsonArray jArray = new JsonArray();
JsonPrimitive element = new JsonPrimitive("value1");
jArray.add(element);
 allidoiswin03 нояб. 2015 г., 00:47
Почему это так Смехотворно нелогично?
 Casey Murray29 июл. 2016 г., 07:47
А почему в документах говорится, что существует JsonArray.add (String)?!?

Ваш ответ на вопрос