防止JSON.parse重新排列对象

dgsult0t  于 2023-02-26  发布在  其他
关注(0)|答案(2)|浏览(337)

在我的Web应用程序中,我从服务器接收到一个JSON字符串,并将其保存在greetings变量中:

var greetings = '{"2":"hoi","3":"hi","1":"salam"}'

请注意问候语是如何以索引2和值hoi开头的。现在我想解析JSON,结果如下:

JSON.parse(greetings) // {1: "salam", 2: "hoi", 3: "hi"}

顺序发生了变化,看起来好像JSON.parse是按键对结果排序的。
有没有办法保持原始字符串的顺序不变?

brgchamk

brgchamk1#

{
   "2":"hoi",
   "3":"hi",
   "1":"salam"
}

不是数组,而是object。对象没有任何顺序。如果顺序很重要,则需要切换到实际的array

mefy6pfw

mefy6pfw2#

通常不能依赖于对象中索引的顺序。请使用键/值对的数组。
正如你所看到的,键被解析为(数字)索引,这就是为什么它们是这样排序的。你可以通过给你的键加上前缀,然后在后面剥离它们来解决这个问题:

console.log(JSON.parse('{"i2":"hoi","i3":"hi","i1":"salam"}'))

相关问题