我需要一个 JSON polyfill 来支持 IE 7 和一些 IE 8 和 IE 9 模式。我应该选择JSON 2还是JSON 3?显然 JSON 3 是一种更现代的实现,但例如像html5please这样的网站甚至都没有提及它,而是推荐使用 JSON 2。
问问题
16832 次
3 回答
14
我想知道同样的事情。JSON3 说:
JSON 2 的变化
JSON 3...
- 正确序列化原始包装对象(问题 #28)。
- 序列化循环结构时抛出 a
TypeError
(JSON 2 递归直到调用堆栈溢出)。- 利用功能测试来检测损坏或不完整的本机JSON 实现(JSON 2 仅检查本机功能的存在)。测试只在运行时执行一次,因此在解析或序列化值时没有额外的性能成本。
与 JSON 2 相比,JSON 3不...
toJSON()
向Boolean
、Number
和String
原型添加方法。这些不是任何标准的一部分,并且在实现的设计中是多余的stringify()
。- 添加
toJSON()
或toISOString()
方法到Date.prototype
. 请参阅下面有关日期序列化的说明。
JSON 3是一个兼容几乎所有 JavaScript 平台的 polyfill。它是JSON 2的直接替代品,它使用功能测试来检测损坏和不完整的原生 JSON 实现,支持 异步模块加载器和
has
感知优化器,并按照规范标准构建。JSON 2是 Douglas Crockford 的一种较旧的替代 polyfill。
于 2012-08-03T22:11:55.997 回答
12
HTML5 Please更新了他们的 JSON 页面,将JSON 3作为主要的 polyfill 供使用,而 JSON 2 作为较旧的替代品位居次要地位。
于 2012-11-28T03:10:11.670 回答
5
如果您想提高页面在 IE7(可能是 8)中的性能,请使用 json2.js。我很高兴使用 json3 几个月,然后我看到了这个问题并做了一些研究。在我的 IE7 VM 中使用 json2.js,所有 jsperf 的执行速度都提高了 1-2 倍。
一个例子:
于 2013-10-25T00:44:49.957 回答