将eval()转换为JSON.parse()时出错

时间:2016-12-27 08:40:35

标签: javascript json ajax parsing eval

我有一个带有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,但我很不走运。我错了吗?

2 个答案:

答案 0 :(得分:7)

您尝试解析的数据不是有效的JSON,因此JSON.parse无法解析它。

必须引用JSON对象中的键,就像任何其他字符串一样。您使用的表单在Javascript中有效,但在JSON中无效。

答案 1 :(得分:0)



   

var data = '{"listUpdated":[],"listConflictOrMerge":[]}';

var results =JSON.parse(data);

console.log(results)




相关问题