现在我的代码很简单
// list is a List<Integer>
JsonArray arr = new JsonArray();
for(int i : list) {
array.add(i);
}
我有点震惊地查看了 API,我没有找到一种更少手动、更实用的方法来执行此操作。我希望 addRange
、addArray
、构造函数从 Collection
到 JsonArray
等。是否有一个,还是有一些基本的限制使这成为不可能?
最佳答案
如果将列表传递给 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"
附言
在上面的代码中,为了可读性和复制粘贴,我内联创建了 Gson 实例 (new GsonBuilder().create())。实际上,您很可能不会在每次需要转换列表时都创建一个新的 Gson 实例,而是更早地创建一次实例以供重用。
关于java - GSON 中 JsonArray 的整数列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21993265/