【问题标题】:Build a JSON object using elements from an arraylist along with their corresponding values from a map使用 arraylist 中的元素及其映射中的相应值构建 JSON 对象
【发布时间】:2013-11-18 14:02:37
【问题描述】:

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

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

【问题讨论】:

  • 你有什么尝试吗?看完文档有没有发现什么障碍?
  • @broncoAbierto:添加到问题
  • 你能显示你预期的输出和输入吗
  • 不知道能不能跳过手动创建Hashmap。考虑到 ArrayList 结构的本质,键是任意的,我认为您不能避免自己通过列表来根据需要进行转换。

标签: java json map gson


【解决方案1】:

如果您想避免创建地图,可以使用“低级”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
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多