迭代JavaScript JSON对象-Chrome/Opera下一个反向-FireFox/Safari OK
首先看看这里,谷歌浏览器,然后是火狐: 注意数字的顺序 JSON示例:迭代JavaScript JSON对象-Chrome/Opera下一个反向-FireFox/Safari OK,json,google-chrome,firefox,loops,Json,Google Chrome,Firefox,Loops,首先看看这里,谷歌浏览器,然后是火狐: 注意数字的顺序 JSON示例: { "3259341": { "datum": "2013-07-23 14:55:00", "titel": "Open Space" }, "3259609": { "datum": "2013-07-23 14:50:00", "titel": "Something else" }, "325740
{
"3259341": {
"datum": "2013-07-23 14:55:00",
"titel": "Open Space"
},
"3259609": {
"datum": "2013-07-23 14:50:00",
"titel": "Something else"
},
"3257403": {
"datum": "2013-07-23 14:45:00",
"titel": "High-Tech"
}
}
如果我尝试使用Chrome或Opera Next(WebKit)对JSON对象进行迭代
“for in”在JSON属性上反向运行。FireFox或Safari(桌面或iOS)运行正常,顺序正确
有没有一种方法可以像FireFox那样像预期的那样实现呢?JSON对象是无序的名称/值对集,您不能(也不应该!)依赖于任何特定的元素顺序。在哈希映射上迭代时,顺序是不保证的……有没有办法强制它?没有分类过吗?没有。如果你想强制执行一个命令,添加一个额外的字段来定义键的顺序。这很有趣,因为Android 2.3.3浏览器的迭代是正确的,而Android 4.2.2没有。所以Safari而不是Chrome也是如此。关键是没有“正确的”…如果你想要一个一致的订单,你应该接受Rob W的建议,添加一个字段来存储你喜欢的订单…现在我发现这个:。所以我必须用一个数组对它进行排序。是的,那么您将拥有一个json对象数组。但是如何在数组中存储这些对象呢?你真的应该考虑只增加一个“订单”字段,它会让生活变得更容易:“你说得对,我的意思是我必须用我想要的一个属性来订购它。因此,在这种情况下,我将选择日期。这样做太浪费时间了。我只想通过AJAX加载它,并对键进行迭代,仅此而已。