我有一点JSON(我用粘土做的),当它干燥并准备好用Android时它会播放... 或不玩 - 取决于版本。
我知道只保留JSON数组的顺序。但是,我所看到的是,在Lollipop(5.x)中,给定对象的子节点按照它们从JSON文件加载的顺序一致地读取但在KitKat(4.4.1)中它们出现在不同的订购,但总是在相同的顺序!!
换句话说,文件可能是
"colors":{"red":"0xFF0000", "blue":"0x0000FF", "green":"0x00FF00"}
和5.x当我抓住键()迭代器并循环它们时它们以原始顺序到达(红色,蓝色,绿色) 但在4.4.x中,它们以绿色,红色,蓝色到达。但他们每次都会以相同的顺序到达。
我真的很好奇为什么JSON解析器从一个版本的Android到另一个版本的行为会有所不同。
答案 0 :(得分:2)
"colors":[{"name":"red", "color":"0xFF0000"},{"name":"blue", "color":"0x0000FF"},...]
不同的顺序可能是由于JSON解析器在内部使用某种HashMap,其实现(哈希映射或密钥的哈希算法)因版本而异。