GSON中JsonArray的整数列表

时间:2014-02-24 16:24:44

标签: java arrays json gson

现在我的代码就是

// list is a List<Integer>

JsonArray arr = new JsonArray();
for(int i : list) {
    array.add(i);
}

通过API我感到有点震惊,我没有找到一个更少手动,更实用的方法来做到这一点。我希望addRangeaddArray构造函数从Collection转到JsonArray,等等。是否有一个,或者是否有一些基本限制使得这不可能?

1 个答案:

答案 0 :(得分:10)

如果将列表传递给Gson#toJsonTree方法,它将返回一个JsonArray。

List<Integer> list = new ArrayList<>();
list.add(5);
JsonElement result = new GsonBuilder().create().toJsonTree(list);
System.out.println(result.getClass()); // prints "class com.google.gson.JsonArray"

P.S。

在上面的代码中,为了便于阅读和复制粘贴,我创建了内联的Gson实例(new GsonBuilder()。create())。实际上,每次需要转换列表时,很可能不会创建新的Gson实例,而是在之前的某个时间创建一个实例,以便重用。