Javascript 所有主要浏览器都支持JSON.parse吗?
可能重复:Javascript 所有主要浏览器都支持JSON.parse吗?,javascript,json,parsing,cross-browser,Javascript,Json,Parsing,Cross Browser,可能重复: 具体来说,IE7+、Firefox2+、Chrome和Safari是否支持JSON.parse(…) 参见:2013年(及以后)的答案 所有主要浏览器都支持JSON.parse吗 差不多,是的()。甚至IE8也有它(前提是您不处于IE7仿真模式)。如果您需要支持IE7及更早版本,请继续阅读 2011年的原始答案 不,旧的浏览器(比如IE7)大多没有。(更多:) 不过,您只需要一个小脚本。JSON的发明者道格拉斯·克罗克福德(Douglas Crockford)为您提供了至少三种选择
具体来说,IE7+、Firefox2+、Chrome和Safari是否支持
JSON.parse(…)
参见:2013年(及以后)的答案
所有主要浏览器都支持JSON.parse吗
差不多,是的()。甚至IE8也有它(前提是您不处于IE7仿真模式)。如果您需要支持IE7及更早版本,请继续阅读
2011年的原始答案
不,旧的浏览器(比如IE7)大多没有。(更多:)
不过,您只需要一个小脚本。JSON的发明者道格拉斯·克罗克福德(Douglas Crockford)为您提供了至少三种选择:
:提供json2.js
和JSON.parse
。解析使用一些正则表达式来抵御脚本注入攻击,然后将结果传递给JSON.stringify
。一般认为这不是一个好主意eval
:不使用json_parse.js
的递归下降解析器eval
:不使用json\u parse\u state.js
的状态机解析器eval
几乎任何主要的库(如、、或)都将提供JSON解析,尽管在某些情况下,它可能只是
eval
上的一层薄薄的外衣,我恐怕不是。但是,您可以使用
以下是John Resig(jQuery的创建者)对此的看法:
JSON2.js-去年年底Crockford
悄悄地发布了他的新版本
JSON API取代了他现有的
应用程序编程接口。重要的区别在于
它使用单个基本对象(JSON)
而不是扩展所有本机对象
原型(booo!)
请参阅副本:谢谢!这是一个非常完整的答案。由于我使用的是一个非常可靠的服务器端编码系统,我可能只会说如果可用使用解析,如果不可用则使用eval。重要的是,正如许多人强调的那样,除非您知道自己从自己的服务器而不是其他任何人的服务器获得完全编码的信息,否则永远不要使用eval。如果页面在IE7模拟模式下运行,JSON对象在IE 8+中仍然不可用,使用:(如果编写在其他客户端页面上运行的JS代码,需要注意一点。)更新:在CanIUse页面上,单击“Show All”按钮查看支持JSON的旧浏览器,其中包括上面提到的+IE8。+1