2012-10-23 16 views
0

这听起来可能听起来很愚蠢,但我无法弄清楚发生了什么,它开始是一个大问题。JSON.eval在某台电脑中未定义

我正在使用一个.Net网络应用程序,其中使用,其他JS库,JSON(而不是json2)。在某个代理中,使用函数JSON.eval()。奇怪的是,这种方法在我们的测试团队的成员的计算机中似乎没有定义。在我的电脑(针对同一个服务器上运行作为她)我有以下JSON对象:

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

而在有问题的电脑(都是Win7的,与IE9)从调试器控制台评估JSON只给出:

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

看来,如果我是缺少明显的东西...

+0

是在IE7/IE8模式,而不是IE9运行的浏览器? – epascarello

+0

兼容模式可能会导致这个问题或其他安全设置,即JScript/JavaScript引擎的屏蔽......仅仅为了这一次,我发现自己赞赏IE选择不支持任何形状的“eval”或形式:) –

+0

@epascarello不,两者都在IE9模式下执行,我也怀疑过。 – jesusiniesta

回答

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()

+0

解析方法可能是最好的解决方案。但我很想知道f ***正在发生什么。应用程序通过IIS提供,具有类似环境的不同PC似乎接收不同的JSON文件。没有任何意义。我知道这听起来像我只是做了一些愚蠢的事情,并没有正确地解决问题,但我不认为是这样。 – jesusiniesta

相关问题