【问题标题】:Java gson how to serialize List<Item> as list of objects in JSON string?Java gson如何将List<Item>序列化为JSON字符串中的对象列表?
【发布时间】:2017-05-19 23:34:02
【问题描述】:

我有一个这样的类项目

class Item {
   private String name;
   private int age;
   private boolean gender;
}

和一个包含这个项目的类 类列表项 { 私有列表项; }

当使用 gson 生成 JSON 时,会返回类似这样的内容

[{"name": "a", "age": "a1", "gender": "male"}, {"name": "b", "age": "b1", "gender": "female"}, ...]

但我想自定义(不更改 POJO 类,因为我不能这样做)和方法

List<Item> listItems = new ArrayList<Item>();
listItems.add(new Item("a", "a1", "male");
listItems.add(new Item("b", "b1", "female");

Gson gson = new Gson();
JsonElement jsonElement = gson.toJsonTree(listItems);

然后 jsonElement 将在 JSON 字符串中生成这样的结构(对象列表和“名称”:“对象”)

{ 
   "a": { "name": a, "age": "a1", "gender": "male" },
   "b": { "name": b, "age": "b1", "gender": "female"}
}

当我序列化它时

String json = gson.toJson(jsonElement);

【问题讨论】:

    标签: java json serialization


    【解决方案1】:

    其实我可以换成

    List<Item> to HashMap<String, Item>
    

    那么 gson 会正确地为我生成这个结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-03
      • 1970-01-01
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多