J'utilise Gson et j'essaie d'ajouter un tas de valeurs de chaîne dans un JsonArray
comme ceci:
JsonArray jArray = new JsonArray();
jArray.add("value1");
Le problème est que la méthode add ne prend qu'une JsonElement
.
J'ai essayé de convertir une chaîne en JsonElement
mais cela n'a pas fonctionné.
Comment puis-je le faire en utilisant Gson?
Vous pouvez créer une primitive qui contiendra la valeur String et l'ajouter au tableau:
JsonArray jArray = new JsonArray();
JsonPrimitive element = new JsonPrimitive("value1");
jArray.add(element);
On dirait que vous devriez faire un new JsonPrimitive("value1")
et ajouter que . Voir The javadoc
Pour les versions plus récentes de la bibliothèque Gson, nous pouvons maintenant ajouter Strings
également. Il a également étendu la prise en charge de l'ajout de Boolean
, Character
, Number
etc. (voir plus ici )
En utilisant cela fonctionne pour moi maintenant:
JsonArray msisdnsArray = new JsonArray();
for (String msisdn : msisdns) {
msisdnsArray.add(msisdn);
}
J'espérais quelque chose comme ça moi-même:
JsonObject jo = new JsonObject();
jo.addProperty("strings", new String[] { "value1", "value2" });
Mais malheureusement, GSON ne prend pas en charge cette application, j'ai donc créé cette aide:
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);
}
Et puis utilisez-le comme ceci:
JsonObject jo = new JsonObject();
Add(jo, "strings", new String[] { "value1", "value2" });
Voila!