所有主流浏览器都支持JSON.parse吗?

Bry*_*eld 18 javascript parsing json cross-browser

可能重复:
浏览器本机JSON支持(window.JSON)

具体来说,是否JSON.parse(...)支持IE7 +,Firefox 2 +,Chrome,Safari?

请参阅:JavaScript中的JSON

T.J*_*der 48

2013年(及以后)的答案

所有主流浏览器都支持JSON.parse吗?

差不多,是的(来源).甚至IE8也有它(假设您不在IE7仿真模式下).如果您需要支持IE7及更早版本,请继续阅读.

2011年的原始答案

不,旧的浏览器(例如IE7)大多没有它.(更多:http://caniuse.com/#search=JSON.parse)

但是,只需要一个小脚本即可.JSON的发明者Douglas Crockford在他的Github页面上有至少三个供您选择:

  • json2.js:提供JSON.parseJSON.stringify.解析使用一些正则表达式来抵御脚本注入攻击,然后将结果传递给eval.这通常不被认为是一个非常好的主意.
  • json_parse.js:一个不使用的递归下降解析器eval.
  • json_parse_state.js:不使用的状态机解析器eval.

使用适合你的.:-)

几乎任何主要的库(如jQuery,Prototype,YUI,Closure其他任何一个)也将提供JSON解析,尽管在某些情况下它可能是一个薄的贴面eval.

  • 如果页面在IE7模拟模式下运行,则JSON对象在IE 8+中仍然不可用:<meta http-equiv ="X-UA-Compatible"content ="IE = EmulateIE7"/>(有点陷入困境)知道是否编写了在其他客户端页面中运行的JS代码.) (2认同)