gpt4 book ai didi

android - 为什么不同版本的 Android 会以不同的方式重新排序我的 JSON?

转载 作者:行者123 更新时间:2023-11-29 20:03:35 24 4
gpt4 key购买 nike

我有一些 JSON(我用粘土制作的),当它干燥并准备好用于 Android 时,它会播放......或不播放 - 取决于版本。

我知道只有 JSON Array 的顺序才能保证被保留。但是,我看到的是,在 Lollipop (5.x) 中,给定对象的子项按照从 JSON 文件加载的顺序一致读取,但在 KitKat (4.4.1) 中,它们以不同的方式出现顺序但总是以相同的不同顺序!!

换句话说,文件可能是

"colors":{"red":"0xFF0000", "blue":"0x0000FF", "green":"0x00FF00"}

在 5.x 中,当我获取 keys() 迭代器并循环遍历它们时,它们以原始顺序到达(红色、蓝色、绿色)但在 4.4.x 中,它们以 green 、 red 、 blue 的形式出现。但它们每次都以相同的不同顺序到达。

我真的很好奇为什么 JSON 解析器的行为会从一个版本的 Android 到下一个版本。

最佳答案

JSON对象,很像HashMaps,是键值的东西,你不应该依赖迭代器中键的顺序,你应该提前知道键然后查询对应的值给它。如果您需要按特定顺序排列对象,我建议您使用这样的 JSON 数组:

"colors":[{"name":"red", "color":"0xFF0000"},{"name":"blue", "color":"0x0000FF"},...]

不同的顺序可能是由于 JSON 解析器在内部使用某种 HashMap 及其实现( HashMap 或 key 的哈希算法)因版本而异。

关于android - 为什么不同版本的 Android 会以不同的方式重新排序我的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35928955/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com