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

标签 javascript json

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

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

之后我将它们字符串化如下

JSON.stringify(message);

上述方法是否按照对象之前的顺序对对象进行字符串化? stringify 后它们的顺序是 0,1,2....9 吗?

最佳答案

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

Properties of non-array objects are not guaranteed to be stringified in any particular order. Do not rely on ordering of properties within the same object within the stringification.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify

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

关于javascript - JSON.stringify 是否保留数组中对象的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46570885/

相关文章:

javascript - fullcalendar 上的安装错误

javascript - 将 JSON 数据转换为可下载的 Excel

javascript - 如何在 Vue.js 中使用 v-for 遍历对象数组?

c# - Cosmos DB 在查询中不遵守 Json.Net CamelCaseNamingStrategy

javascript - 如何在我的自定义 slider JavaScript 代码中插入自动播放选项

javascript - 为什么Promise先于setTimeout执行?

javascript - 通过xslt将xhtml转为javascript输出

javascript - Jasmine - 找不到模拟方法

php - PHP Json Youtube API-如何获得作者?

objective-c - 如何将 “bool” 值存储在 NSMutableArray* 或 NSMutableDictionary* 中?以 bool 形式传入的 JSON 数据的长期问题