小伙伴们对Golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《json.Unmarshal是否保留JSON数组的顺序》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!
问题内容json.Unmarshal
是否保留传入的 JSON 数组的顺序?
我知道在 JSON 本身中,数组不应该保持顺序。但是,如果使用相同的数据集对 json.Unmarshal
进行 2 次调用,我能否保证将数组解组到的 go 切片的顺序具有相同的顺序?
解决方案
是的,排序是 array data structures 的基本属性,因此当将切片和数组与 JSON 进行解组/编组时,go 会隐式维护它。
但请注意,在 JSON 中称为“对象”的 Associative arrays 和 "Map types" in go(或简称为“映射”)是“一组无序的元素”,因此在 JSON 中取消/编组它们并不 保留键/值对的顺序。
最后,根据 json.Marshal(...)
,将结构编组到 JSON 对象(也称为关联数组)确实会根据结构字段的顺序维护键的顺序。
到这里,我们也就讲完了《json.Unmarshal是否保留JSON数组的顺序》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注编程网公众号,带你了解更多关于的知识点!