GSON数组到json,但已映射数组

GSON array to json but mapped array

本文关键字:数组 映射 json GSON      更新时间:2023-09-26

我使用Java中的Gson库将Java对象序列化为jSon,反之亦然。

它大多数时候都很好用。。。但因为我想以映射数组的形式访问javascript中的集合,所以我需要将它们作为属性而不是json数组发送。

例如,假设我有一个有几个人的小组……如果我发送它:

var groups={"group1":[{"john":{"age":22,"sex":"male"}},{"patricia":{"age":32,"sex":"female"}}]}

我不能参加团体["group1"]["john"]。。。我必须遍历数组才能找到正确的人。

但如果我这样做:

var groups={"group1":{"john":{"age":22,"sex":"male"},"patricia":{"age":32,"sex":"female"}}}

现在我可以分组["group1"]["john"]了。

这个问题是Group有一个Array of Person,当gson序列化到json时,它将每个人作为数组元素[{…而不是group1的属性,而group1又是groups的属性。

我想知道是否可以告诉gson序列化到映射的数组,而不是普通的数组。如果是,如何。

如果不需要数组,就不要使用数组。

如果您在java中改为使用Map,它应该序列化为您的第二个示例:

class ClassToSerialize {
    private HashMap<String, PersonInfo> group1 = new HashMap<String, PersonInfo>();
    ...
}
class PersonInfo {
    private int age;
    private String sex;
    ...
}

HashMap的键是您的人名)