0

这可能听起来很愚蠢,但我无法弄清楚发生了什么,这开始成为一个大问题。

我正在开发一个 .Net Web 应用程序,该应用程序使用 JSON(不是 json2)以及其他 JS 库。在某个代理中,使用了函数 JSON.eval()。奇怪的是,这种方法似乎在我们测试团队成员的计算机中未定义。在我的计算机上(运行与她相同的服务器)我有以下 JSON 对象:

JSON 
{
    copyright : "(c)2005 JSON.org",
    license : ...
    stringify : ...
    eval : ...
    parse : ...
} 

在有问题的 PC(都是 Win7 和 IE9)中,从调试器控制台评估 JSON 只会给出:

JSON 
{
stringify : ...
    parse : ...
} 

好像我错过了一些明显的东西......

4

1 回答 1

2

在某处,您似乎包含了来自http://www.json.org/js.html的第三方 JSON 对象实现的旧版本。JSON.eval()不是标准方法,也不再存在于 Crockford 的 JSON 中。第二个似乎是浏览器原生实现;.stringify()并且.parse()确实是唯一有保证的方法:https ://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON

编辑:换句话说,最好的解决方案是更改您的代码以使用JSON.parse()

于 2012-10-23T12:23:00.317 回答