GSON数组到json,但已映射数组
GSON array to json but mapped array
我使用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
的键是您的人名)
相关文章:
- 无法通过数组映射绑定
- React Native数组映射与多维数组
- 在JavaScript中搜索数组映射的最有效方法
- Undercore将对象的数组映射到以id为键的新对象
- 将一个外部二维数组映射到另一个二维数组(javascript)
- 如何将一个javascript数组映射到另一个具有不同字段名称的数组
- 数组映射和筛选顺序
- 如何使用 JavaScript 将此数组映射到新格式
- 使用 lodash 是将数据从数组映射到单个数组的好方法
- 将 json 数组中的数组映射到 Angularjs 范围
- 如何使用哈希图或数组映射返回总数最高的类别
- 当某些数据是可选的时,使用数组映射
- JavaScript 将数组映射到对象属性
- 角度中的数组映射错误
- 将数组映射变量替换为实际的变量名称/字符串
- 在用数组填充初始化的数组上使用数组映射的意外行为
- JavaScript 数组映射函数不会更改字符串中的元素
- 将 JSON 数组映射到 KO 抛出错误
- javascript 数组映射与应用
- 从 JQuery 中的字符串创建数组映射