我需要创建一个JSON对象,因为它是从地图反序列化的,但使用Arraylist<Integer>
而不是列表作为键和值。使用Gson库创建这样的JSON的最佳方法是什么?
我只能想到首先从HashMap
元素创建一个新的ArrayList
,然后将其转换为JSON。不确定是否有比这更好的方法,避免创建新地图。
答案 0 :(得分:0)
如果要避免创建地图,可以使用“低级”Gson对象。这就是你如何做到的:
public class Q20049678 {
public static void main(String[] args) {
ArrayList<Integer> al = new ArrayList<Integer>();
al.add(1);
al.add(1);
al.add(2);
al.add(3);
al.add(5);
al.add(8);
JsonObject jo = new JsonObject();
for (Integer i : al) {
jo.add(String.valueOf(i), new JsonPrimitive(i));
}
System.out.println(jo.toString());
}
}
这是我使用外部工具格式化的结果。
{
"1":1,
"2":2,
"3":3,
"5":5,
"8":8
}