私はGsonを使用していて、次のJsonArray
ような文字列値の束を追加しようとしています。
JsonArray jArray = new JsonArray();
jArray.add("value1");
問題は、addメソッドが取るのは。だけであるということJsonElement
です。
文字列をにキャストしようとしましたJsonElement
が、うまくいきませんでした。
Gsonを使用してそれを行うにはどうすればよいですか?
文字列値を含むプリミティブを作成し、それを配列に追加できます。
JsonArray jArray = new JsonArray();
JsonPrimitive element = new JsonPrimitive("value1");
jArray.add(element);
new JsonPrimitive("value1")
を作成して追加する必要があるようです。javadocを参照してください
Gsonライブラリの新しいバージョンでは、追加することもできStrings
ます。Boolean
また、、などの追加Character
のサポートも拡張されていますNumber
(詳細はこちらを参照)
これを使用すると、今私のために動作します:
JsonArray msisdnsArray = new JsonArray();
for (String msisdn : msisdns) {
msisdnsArray.add(msisdn);
}
私は自分でこのようなものを望んでいました:
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" });
出来上がり!