Json string:
"{"detail":{"01":0,"02":0,"03":0,"04":0,"05":"-","06":"-","07":"-","08":"-","09":"-","10":"-","11":"-","12":"-"}}"
jQuery.parseJSON结果:
{detail:{10:"-", 11:"-", 12:"-", '01':0, '02':0, '03':0, '04':0, '05':"-", '06':"-", '07':"-", '08':"-", '09':"-"}}
我不知道为什么parseJSON改变了键的顺序(10,11,12,01,02,...而不是01,02,03,......)。在这种情况下如何保留订单?
答案 0 :(得分:1)
我不知道为什么parseJSON会改变键的顺序(10,11,12,01,02,...而不是01,02,03,......)。
大多数浏览器按以下顺序迭代属性:
*:正32位整数被认为是整数索引
但是,语言标准是特定于实现的,而不是必需的。可能存在完全不同行为的环境。
(相关:W3 recommendation)
首先列出10
,11
,12
,因为它们是整数。 01
,02
等正在关注,因为它们被视为字符串。
在这种情况下如何保留订单?
你做不到。你必须使用一个数组,在你的情况下这应该是相当简单的,因为你的密钥基本上是连续的数字。