小编典典

JSON.stringify是否保留数组中对象的顺序

json

我正在创建一个JavaScript对象,如下所示

var myObjects ; 
for(var i = 0; i <10;i++){
    var eachObject = {"id" : i};
    myObjects .push(eachObject );
}
message = {
      "employeeDetails" : myObjects 
}

之后,我将它们如下

JSON.stringify(message);

上面的方法是否按照对象先前的顺序对它们进行了字符串化处理?字符串化后,它们将按照以前的顺序排列为0,1,2 .... 9吗?


阅读 453

收藏
2020-07-27

共1个答案

小编典典

文档中没有任何内容可以明确确认数组项的顺序已保留。但是,文档指出,对于非数组属性,不能保证顺序:

非数组对象的属性不能保证以任何特定顺序进行字符串化。不要依赖于字符串化中同一对象内属性的顺序。

https://developer.mozilla.org/zh-
CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

即使保留数组项的顺序,我也不会指望它,而是自己对这些项进行排序。毕竟,很可能会有一些业务或表示逻辑来指示应如何对项目进行分类。

2020-07-27