我正在使用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"]
但是,我想在JsonArray
(Add
方法)中动态创建对象,就像我可以使用C#一样。
答案 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;));