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

时间:2011-02-05 18:51:08

标签: javascript json parsing cross-browser

  

可能重复:
  Browser-native JSON support (window.JSON)

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

请参阅:JSON in JavaScript

2 个答案:

答案 0 :(得分:48)

2013年(及以后)的答案

  

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

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

2011年的原始答案

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

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

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

使用适合你的方式。 : - )

几乎所有主要库(例如jQueryPrototypeYUIClosureany of several others)也会提供JSON解析,但在某些在eval上它可能是一个薄的贴面。

答案 1 :(得分:1)

我不敢。但是,您可以使用json2 script written by Douglas Crockford

以下是John Resig(jQuery的创建者)对此所说的话:

  

JSON2.js - 去年年底Crockford   悄然发布了他的新版本   JSON API取代了他现有的   API。重要的区别在于   它使用了单个基础对象(JSON)   而不是扩展所有本机对象   原型(booo!)。

http://ejohn.org/blog/the-state-of-json/

You can download json2.js here :)