Eval不起作用 - JavaScript

Blu*_*ire 1 javascript json eval

我以前从未使用eval()过,所以我认为我的语法非常错误.以下是什么问题:

var JSONAsString = '{"item1":"one", "item2":"two", "item3":"three"}';
var JSONAsObject = eval(JSONString);
alert(JSONAsObject.item1);
Run Code Online (Sandbox Code Playgroud)

因为它似乎不起作用 - 我加载页面没有任何反应.

是的,我知道我不应该使用eval.我假设语法JSON.parse()与eval 的语法相同......对吗?如果是,如果(在修复代码之后)我用ESON.parse替换eval,它还会做同样的事情吗?

Thi*_*ter 5

使用eval时需要将JSON包装在():

var JSONAsString = '{"item1":"one", "item2":"two", "item3":"three"}';
var JSONAsObject = eval('(' + JSONAsString + ')');
alert(JSONAsObject.item1);
Run Code Online (Sandbox Code Playgroud)

但是,您应该JSON.parse() 从一开始就使用,而不仅仅是以后.否则,可能无效的JSON是有效的JavaScript,但在切换时可以停止工作JSON.parse.

请注意,您应该json2.js在使用时包括,JSON.*因为某些旧版浏览器没有本机JSON支持.