JSON.stringify和JSON.解析不能在IE9中工作

JSON.stringify and JSON.parse not working in IE9?

本文关键字:JSON IE9 工作 stringify 不能      更新时间:2023-09-26

我到处使用JSON.StringifyJSON.parse,它在Firefox中工作得很好。它在IE9和IE8中都不起作用。我能做什么?

JSON.stringify以小写字母s开头。stringifyparse都可以在IE8+中使用,,但只能在标准模式

如果你目前使用的是怪癖模式,用<!DOCTYPE html>作为前置。此外,注意您调用的JavaScript方法的大小写—所有内置方法都以小写字符开头。

为什么你要依赖于浏览器拥有的对象,而不是仅仅包含由Douglas Crockford编写的脚本文件…您可以在这里找到最小化的文件:http://www.json.org/js.html

导入后,您就不必担心该方法存在于浏览器中

作为替代方案,在您可能出于某种原因需要在严格模式下运行的场景中(我有另一个包含"use strict"的库),可以查看这里:https://github.com/douglascrockford/JSON-js。我修改了这个,首先检查JSON是否未定义,并且只生成函数JSON。

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

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

唯一的问题是,发送UTF-8报头将使JSON无效(IE不喜欢这样)。正如问题所描述的那样,这可能仍然适用于IE9…几年前,我曾经写过一本how to。在可以解析原生JSON的浏览器中添加JSON支持可能不是最佳解决方案,因为它会产生无用的开销——仅仅是因为未能以预期的格式交付JSON。