JSON.stringify和JSON.parse在IE9中不起作用?

时间:2011-08-22 10:41:59

标签: javascript jquery json internet-explorer-8 internet-explorer-9

我到处都在使用JSON.StringifyJSON.parse,它可以在Firefox中正常使用。它不再适用于IE9,也不适用于IE8。我该怎么办?

4 个答案:

答案 0 :(得分:34)

JSON.stringify以小写s开头。 stringifyparse都是available in IE8+,但仅限于standards mode

如果您当前正在使用怪癖模式,请使用<!DOCTYPE html>添加文档。另外,请注意您调用的JavaScript方法的大小写 - 所有内置的方法都以小写字符开头。

答案 1 :(得分:10)

为什么要依赖具有该对象的浏览器而不是仅包含Douglas Crockford的脚本文件..您可以在此处找到minifed文件:http://www.json.org/js.html

导入后,您不必担心浏览器中存在的方法。

答案 2 :(得分:0)

作为替代方案,在您可能因任何原因需要以严格模式运行的情况下(我有另一个包含“use strict”的库),您可以在这里查看:https://github.com/douglascrockford/JSON-js。我修改了这个以首先检查JSON是否未定义,如果是,则仅生成函数JSON.parse:

if (typeof JSON === "undefined") {
    var JSON = {
        parse: <insert value of json_parse from library here>
    };
}

我的问题是应用程序代码在IE9中不起作用(参与库使用严格模式,我相信)。这解决了我的问题。

答案 3 :(得分:0)

仅仅是问题在于,发送UTF-8标头会使JSON无效(IE不会那样做/不喜欢这样)。正如描述的问题,这可能仍然适用于IE9 ......几年前曾写过how to。向可以解析本机JSON的浏览器添加JSON支持可能不是最佳解决方案,因为它会产生无用的开销 - 只是因为无法以预期的格式提供JSON。