【发布时间】:2016-12-27 08:40:35
【问题描述】:
我有一个带有 eval() 的 sn-p 代码,如下所示:
var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax
var results = eval("(" + data + ")");
console.log(results)
如您所见,data 是我从 ajax 请求返回的输入值。使用eval()时,可以解析为2个数组对象。
现在我不想再使用 eval(),所以我尝试使用 JSON.parse()。但是,有一个错误。
var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax
var results = JSON.parse(data);
console.log(results)
我的目的是我不想再使用 eval() 来解析数据。
那么,有什么方法可以做到这一点吗?
我尝试使用 JSON,但运气不好。我是不是哪里错了?
【问题讨论】:
-
您不能使用
JSON.parse执行任意JavaScript 代码。它仅适用于 JSON。 -
"{listUpdated:[],listConflictOrMerge:[]}"这是无效的 JSON - 键需要用双引号括起来。这是正确的表示:'{"listUpdated":[],"listConflictOrMerge":[]}' -
你是对的,@vlaz。
标签: javascript json ajax parsing eval