JSON.stringify和JSON.parse在IE9中不起作用?
我到处都在使用JSON.Stringify
和JSON.parse
,它适用于Firefox。 它不再适用于IE9,也不适用于IE8。 我能做什么?
你为什么要依赖拥有该对象的浏览器而不是只包含Douglas Crockford的脚本文件..你可以在这里找到minifed文件: http : //www.json.org/js.html
导入后,您不必担心浏览器中存在的方法。
JSON.stringify
以小写s
开头。 stringify
和parse
都可以在IE8 +中使用 , 但仅限于标准模式 。
如果您当前正在使用怪癖模式,请在前面添加文档。 另外,请注意您调用的JavaScript方法的大小写 – 所有内置的方法都以小写字符开头。
另外,在您可能因任何原因需要以严格模式运行的情况下(我有另一个包含“use strict”的库),您可以在这里查看: https : //github.com/douglascrockford/JSON-js 。 我修改了这个以首先检查JSON是否未定义,并且只生成函数JSON.parse,如果它是:
if (typeof JSON === "undefined") { var JSON = { parse: }; }
我的问题是应用程序代码在IE9中不起作用(我相信参与的库使用严格模式)。 这解决了我的问题。
仅仅是问题是,发送UTF-8标头会使JSON无效(IE不会/不喜欢这样)。 正如这个问题所描述的那样,这可能仍然适用于IE9 …几年前曾写过一篇如何写。 将JSON支持添加到可以解析本机JSON的浏览器可能不是最佳解决方案,因为它会产生无用的开销 – 只是因为无法以预期的格式提供JSON。