如何在Node.js中保持JSON数字键的顺序

时间:2019-03-12 14:51:49

标签: javascript node.js json

var json = `{"3":0,"2":0,"1":0}`
var obj = JSON.parse(json)
console.log(JSON.stringify(obj))
console.log(json === JSON.stringify(obj))

输出

{"1":0,"2":0,"3":0}
false

我希望得到它

{"3":0,"2":0,"1":0}
true

怎么做

3 个答案:

答案 0 :(得分:3)

这是因为json是解析后的对象,并且不能保证对象的键是正确的

您可以使用地图及其guarantees the order of the keys

答案 1 :(得分:0)

您可以使用具有guid属性的对象数组

const text = '[{"id":3,"value":0},{"id":2,"value":0},{"id":1,"value":0}]'

const json = JSON.parse(text)

console.log(JSON.stringify(json))

答案 2 :(得分:-1)

您可以将密钥花一个点,并通过iteratong将这些密钥按原始插入顺序放置,但不能仅使用数字进行访问。这也需要一个点。

var json = `{"3.":0,"2.":0,"1.":0}`
var obj = JSON.parse(json)

console.log(obj[2])
console.log(JSON.stringify(obj))
console.log(json === JSON.stringify(obj))