【发布时间】:2011-06-21 23:41:10
【问题描述】:
具体来说,IE7+、Firefox 2+、Chrome、Safari 是否支持JSON.parse(...)?
【问题讨论】:
标签: javascript json parsing cross-browser
具体来说,IE7+、Firefox 2+、Chrome、Safari 是否支持JSON.parse(...)?
【问题讨论】:
标签: javascript json parsing cross-browser
所有主流浏览器都支持 JSON.parse 吗?
差不多,是的 (source)。甚至 IE8 也有它(前提是您不在 IE7 仿真模式下)。如果您需要支持 IE7 及更早版本,请继续阅读。
不,较旧的浏览器(例如 IE7)大多没有它。 (更多:http://caniuse.com/#search=JSON.parse)
但是,您只需要一个小脚本即可。 JSON 的发明者 Douglas Crockford 在his Github page 上有不少于三个供您选择:
json2.js:同时提供JSON.parse 和JSON.stringify。解析使用一些正则表达式来防御脚本注入攻击,然后将结果传递给eval。这通常被认为不是一个好主意。json_parse.js:一个不使用eval的递归下降解析器。json_parse_state.js:一个不使用eval的状态机解析器。使用适合您的。 :-)
几乎所有主要库(如jQuery、Prototype、YUI、Closure 或 any of several others)也将提供 JSON 解析,尽管在某些情况下它可能只是 @ 987654337@.
【讨论】:
恐怕不会。但是,您可以使用json2 script written by Douglas Crockford。
以下是 John Resig(jQuery 的创建者)对此的评价:
JSON2.js - 去年年底 Crockford 悄悄发布了他的新版本 JSON API 取代了他现有的 API。重要的区别在于 它使用单个基础对象 (JSON) 而不是扩展所有本机对象 原型(嘘!)。
【讨论】: