【问题标题】:GSON array to json but mapped arrayGSON 数组到 json 但映射数组
【发布时间】:2012-03-01 23:48:31
【问题描述】:

我正在使用 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 又是组的属性.

我想知道是否可以告诉 gson 序列化为映射数组而不是普通数组。如果有怎么办。

【问题讨论】:

    标签: java javascript json gson


    【解决方案1】:

    如果您不想要数组,请不要使用数组。

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

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

    HashMap 的键是你的人名)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-24
      • 2018-10-17
      • 2016-01-11
      • 2019-09-18
      • 1970-01-01
      • 1970-01-01
      • 2012-12-27
      相关资源
      最近更新 更多