为了账号安全,请及时绑定邮箱和手机立即绑定

json.Unmarshal 是否维护 JSON 数组的顺序

json.Unmarshal 是否维护 JSON 数组的顺序

Go
尚方宝剑之说 2022-07-11 15:16:29
是否json.Unmarshal保留传入的 JSON 数组的顺序?我知道在 JSON 本身中,不期望数组保持顺序。但是,给定具有相同数据集的 2 次调用json.Unmarshal,我可以保证将数组解组到的 go 切片的顺序将具有相同的顺序吗?
查看完整描述

1 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

是的,排序是数组数据结构的基本属性,因此在将切片和数组从 JSON 中解散/编组时,go 会隐式地维护它。

但是请注意,关联数组,在 JSON 中称为“对象”,在 go(或简称为“地图”)中称为“映射类型”,是“无序的元素组”,因此将它们从 JSON 中解散/编组不会保留顺序的键/值对。

最后,将结构编组为 JSON 对象(也称为关联数组)确实会根据结构字段的顺序维护键的顺序,每个json.Marshal(...).


查看完整回答
反对 回复 2022-07-11
  • 1 回答
  • 0 关注
  • 230 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信