我到处都在使用JSON.Stringify
和JSON.parse
,它可以在Firefox中正常使用。它不再适用于IE9,也不适用于IE8。我该怎么办?
答案 0 :(得分:34)
JSON.stringify
以小写s
开头。 stringify
和parse
都是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。