我有一个像这样的课程
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);
答案 0 :(得分:1)
实际上我可以改变
List<Item> to HashMap<String, Item>
然后gson会正确地为我生成这个结构。