我有一个带有eval()的代码段,如下所示:
var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax
var results = eval("(" + data + ")");
console.log(results)

如您所见,数据是我从ajax请求返回的输入值。使用eval()时,可以将其解析为2个数组对象。
现在我不想再使用eval()了,所以我尝试使用JSON.parse()。但是,有一个错误。
var data = "{listUpdated:[],listConflictOrMerge:[]}"; //returned from Ajax
var results = JSON.parse(data);
console.log(results)

我的目的是我不想再使用eval()来解析数据。
那么,有什么方法可以做到吗?
我尝试使用JSON,但我很不走运。我错了吗?
答案 0 :(得分:7)
您尝试解析的数据不是有效的JSON,因此JSON.parse
无法解析它。
必须引用JSON对象中的键,就像任何其他字符串一样。您使用的表单在Javascript中有效,但在JSON中无效。
答案 1 :(得分:0)
var data = '{"listUpdated":[],"listConflictOrMerge":[]}';
var results =JSON.parse(data);
console.log(results)