使用$ .parseJSON时出现“意外的令牌o”

以下ajax调用给出以下结果:

$.ajax({ type: "POST", url: //**My full URL goes here**, data: {sources: sources}, dataType: "json", success: function(data) { alert(data); alert(data.length); for (var i = 0; i < data.length; i++) { alert(data[i]); } } }); 

结果:

 data: [objject object],[objject object],[objject object] length: 3 in loop: [objject object] [objject object] [objject object] 

以及我刚刚添加的以下代码:

 var data = $.parseJSON(data); $.ajax({ type: "POST", url: //**My full URL goes here**, data: {sources: sources}, dataType: "json", success: function(data) { var data = $.parseJSON(data); alert(data); alert(data.length); for (var i = 0; i < data.length; i++) { alert(data[i]); } } }); 

上面的代码给出了以下错误:

未捕获的语法错误:意外的令牌o

这是为什么? 难道我做错了什么? 我该如何解决?

由于您传递的是dataType: 'json' ,因此data已经是已解析的对象,因此无需再次解析它。

再次调试和检查数据的值,使用控制台日志记录而不是alert() ,如console.log(data)

停止使用alert进行调试,改为使用console.log

 success: function(data) { // in the browser console, you will see the data structure. // then do what you want console.log(data); // ...