Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用arraylist中的元素及其对应的映射值构建JSON对象_Java_Json_Map_Gson - Fatal编程技术网

Java 使用arraylist中的元素及其对应的映射值构建JSON对象

Java 使用arraylist中的元素及其对应的映射值构建JSON对象,java,json,map,gson,Java,Json,Map,Gson,我需要创建一个JSON对象,因为它是从映射反序列化的,但是使用Arraylist而不是列表作为键和值。使用Gson库创建这样一个JSON的最佳方法是什么 我只能考虑首先从ArrayList元素创建一个新的HashMap,然后将其转换为JSON。不确定是否有更好的方法避免创建新地图。如果要避免创建地图,可以使用“低级”Gson对象。这就是你可以做到的: public class Q20049678 { public static void main(String[] args) {

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


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

如果要避免创建地图,可以使用“低级”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());

   }

}

你试过什么吗?阅读文档后,您是否发现了任何障碍?@broncoAbierto:添加到问题中您是否可以显示预期的输出和输入我不知道您是否可以跳过手动创建Hashmap。考虑到ArrayList结构的本质,键是任意的,我不认为您可以避免自己查看列表以按照自己的意愿进行转换。
{
  "1":1,
  "2":2,
  "3":3,
  "5":5,
  "8":8
}