用Gson创建一个数组

时间:2014-10-31 21:58:21

标签: java json gson

我正在使用gson在Java中创建JSON对象。我正在尝试使用三个元素创建一个数组:

[ "ONE", "TWO", "THREE" ]

使用此代码:

    JsonArray   array   = new JsonArray ();
    array.add("ONE");
    array.add("TWO");
    array.add("THREE");

但是add()只接受JsonElement个对象,而不是实际的字符串。


我之所以能够做到这一点的原因,是因为我过去曾使用过一个名为SimpleJSON的C#脚本和Unity3D。有了它,我可以这样做:

    JSONArray ary = new JSONArray ();
    ary.Add("ONE");
    ary.Add("TWO");
    ary.Add("THREE");

哪个工作正常。我只是不确定如何用gson做到这一点。


我知道我可以 Java数组转换为JSON对象:

String[] strings = {"abc", "def", "ghi"};
gson.toJson(strings);  ==> prints ["abc", "def", "ghi"]

但是,我想在JsonArrayAdd方法)中动态创建对象,就像我可以使用C#一样。

4 个答案:

答案 0 :(得分:4)

JsonPrimitive。您应该可以使用array.add(new JsonPrimitive(yourString);

答案 1 :(得分:1)

使用List可以替代这样做,这很容易操作 您可以将String添加到List,然后从中创建JSON:

List<String> list = new ArrayList<String>();
list.add("ONE");
list.add("TWO");
list.add("THREE");

Gson gson = new Gson();
String array = gson.toJson(list);

答案 2 :(得分:1)

您可以执行以下操作:

JsonArray array = new JsonArray();
array.add(new JsonPrimitive("ONE"));
array.add(new JsonPrimitive("TWO"));
array.add(new JsonPrimitive("THREE"));

答案 3 :(得分:1)

array.add(gson.toJsonTree(&#34; ONE&#34;));