IE6中的JSON对象 - 如何?

时间:2009-11-24 00:18:27

标签: javascript json internet-explorer

快速提问,这对于知道某人的人来说可能是一块蛋糕。

我有一个简单的asp.net网站,它使用JSON作为一堆东西(和JSON.stringify)

在firefox等方面都很好,但在IE6中我遇到了一个错误,JSON未定义。

有没有办法可以包含JSON实现而不会破坏我已经拥有的东西(使用其他浏览器中的本机JSON对象)。 如果是这样,怎么样?

谢谢!

5 个答案:

答案 0 :(得分:35)

https://github.com/douglascrockford/JSON-js的json2库正是您所需要的。您可以无条件地包含它,并将JSON.parse和JSON.stringify添加到您的全局命名空间(仅当尚未定义时)。它不会破坏任何内置的JSON。从它的来源:

if (!this.JSON) {
    this.JSON = {};
}
...
if (typeof JSON.stringify !== 'function') {
...
if (typeof JSON.parse !== 'function') {

那是全面的!即使由于某种原因你已经拥有JSON.stringify而不是JSON.parse(反之亦然)它仍然会做正确的事情,留下原来的。

答案 1 :(得分:4)

您的firefox版本可能内置了对JSON库的支持。但理想情况下,您应该从json.org中包含JSON js库(在托管域中复制它)。

答案 2 :(得分:2)

我也遇到过这个问题,你可以在使用JSON之前加载json2.js。请参阅此link

答案 3 :(得分:1)

使用由Douglas Crockford在Github上提供的JSON-js,它使得JSOn对象在不支持JSOn对象的浏览器中可用,只是在ur页面中包含一个使用JSOn对象的js文件。 https://github.com/douglascrockford/JSON-js

另请查看此链接http://json.org/js.html

答案 4 :(得分:0)

只需检查JSON.stringify,如果它不存在,请使用其他方法将数据解析为JSON字符串。