gpt4 book ai didi

java - GSON 数组到 json 但映射数组

转载 作者:行者123 更新时间:2023-12-02 07:56:46 27 4
gpt4 key购买 nike

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

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

例如,假设我有一个组,其中有几个人...如果我发送它:

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

我无法执行 groups["group1"]["john"]...并且我必须遍历数组才能找到正确的人。

但如果我这样做:

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

现在我可以进行组["group1"]["john"]。

问题是 Group 有一个 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 的键是您人员的姓名)

关于java - GSON 数组到 json 但映射数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9526020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com