Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

JSON 中键值对的顺序问题

  关于 JavaScript 中的对象有序无序的问题我好像纠结过好多次,最近的一次结论是 ES6 将对象定义为有序的,但很多浏览器没有实现。可是即便 ES6 之后有了这样的定义,之前的一些东西确实依然是原来的定义。比如 JSON 中的对象依然被强调定义为无序的。
  我经常想利用对象有序的特性来保存一些有序的键值对而不用数组,但碍于各平台实现的不同而没这么干。但是突然想到 JSON 的定义是从早期的 JavaScript 中抽出去的,那么 ES6 的那套定义对 JSON 应该就没什么用。从 json.org 上看到的定义依然是: An object is an unordered set of name/value pairs.   也就是说即使 ES6 之后 JavaScript 中的对象都是有序的了,我们也依然不能将 JSON 视为有序的。当数据被以 JSON 形式保存后其中对象的顺序就会丢失。所以对于有序对象我们都应该以数组的方式保存。
  不过目前浏览器对 ES6 的有序对象还支持不好,很多 JS 引擎内本身就没法以有序对象来存储。所以开发上也没法直接依赖 ES6 的对象有序性,只要记住目前对象依然是无序的就好。
  另外我再强调一遍 JSON 是一种文本格式的数据,不是指 JavaScript 中的对象。
网名:
3.84.186.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^