快速提问,这对于知道某人的人来说可能是一块蛋糕。
我有一个简单的asp.net网站,它使用JSON作为一堆东西(和JSON.stringify)
在firefox等方面都很好,但在IE6中我遇到了一个错误,JSON未定义。
有没有办法可以包含JSON实现而不会破坏我已经拥有的东西(使用其他浏览器中的本机JSON对象)。 如果是这样,怎么样?
谢谢!
答案 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字符串。