Java gson如何将List <item>序列化为JSON字符串中的对象列表?

时间:2017-01-05 12:11:07

标签: java json serialization

我有一个像这样的课程

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

和包含此项目的类     class ListItem {        私人清单项目;     }

当使用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字符串中生成一个这样的结构(对象列表和&#34; name&#34;:&#34; object&#34;)

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

我序列化时

String json = gson.toJson(jsonElement);

1 个答案:

答案 0 :(得分:1)

实际上我可以改变

List<Item> to HashMap<String, Item>

然后gson会正确地为我生成这个结构。