使用arraylist中的元素及其对应的map值来构建JSON对象

时间:2013-11-18 14:02:38

标签: java json map gson

我需要创建一个JSON对象,因为它是从地图反序列化的,但使用Arraylist<Integer>而不是列表作为键和值。使用Gson库创建这样的JSON的最佳方法是什么?

我只能想到首先从HashMap元素创建一个新的ArrayList,然后将其转换为JSON。不确定是否有比这更好的方法,避免创建新地图。

1 个答案:

答案 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
}