如何解决json.Unmarshal是否维护JSON数组的顺序
def recurencyListReverse(days:List[String]):String = {
@annotation.tailrec
def loop(ds: List[String],connect:String,acc:String):String =
if (ds.isEmpty) acc
else loop(ds.tail,",ds.head + connect + acc)
loop(days,"","")
}
是否保留传入的JSON数组的顺序?
我知道在JSON本身中,不希望数组保持顺序。但是,给定json.Unmarshal
的2次调用具有相同的数据集,我是否可以保证将要解组数组的go slice的顺序将具有相同的顺序?
解决方法
是的,排序是array data structures的基本属性,因此当在JSON之间切分切片和数组时,go会隐式维护它。
但是请注意,Associative arrays在JSON和"Map types" in go(或简称为“地图”)中称为“无序元素组”,因此在JSON中与它们之间进行编组 not 不会保留键/值对的顺序。
最后,根据json.Marshal(...)
,将结构编组为JSON对象(也称为关联数组)确实会根据结构字段的顺序维护键的顺序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。