32

私はGsonを使用していて、次のJsonArrayような文字列値の束を追加しようとしています。

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

問題は、addメソッドが取るのは。だけであるということJsonElementです。

文字列をにキャストしようとしましたJsonElementが、うまくいきませんでした。

Gsonを使用してそれを行うにはどうすればよいですか?

4

4 に答える 4

71

文字列値を含むプリミティブを作成し、それを配列に追加できます。

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

私は自分でこのようなものを望んでいました:

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

出来上がり!

于 2016-11-02T16:36:26.697 に答える