JSON和意外的字符

考虑到这个结果,我得到了一个ajax调用:

[ { "field1": "2381", "field2": "1233", "field3": "43.79489333333333", "field4": "11.22697833333333" }, { "field1": "2381", "field2": "1774", "field3": "45.70752833333334", "field4": "9.489278333333333" } ] 

并且有一个ajax调用它会一直返回“意外字符”错误,我有这样的调用我使用:

 jQuery.ajax({ type: "GET", dataType: "json", url: "/myUrl.php", success: function(data) { console.log(data); var arrayObjects = JSON.parse(data); } }); 

所以,自从我在互联网上阅读这种ajax电话后,它说:

 [{"value": "test"}] is valid 

所以我想知道为什么我的对象不断返回“意外的角色”。

通过设置dataType: "json"您告诉jQuery将接收的数据解析为JSON,因此数据作为Javascript数组传递给success()函数。

请参阅: http : //api.jquery.com/jQuery.ajax/

使用jQuery.ajax ,如果指定dataFormat ,它将尝试在将数据传递给回调函数之前根据指定的格式自动解析响应。

因此,您在回调中收到的不是JSON字符串,它已经是一个JavaScript对象,不需要任何解析。

 jQuery.ajax({ type: "GET", dataType: "json", // <-- this specifies the data format already url: "/myUrl.php", success: function(data) { console.log(data[0]); //logging first record //var arrayObjects = JSON.parse(data); //not needed } }); 

似乎从API返回的data已经是一个array

你正试图解析一个数组 ,所以错误。

所以改变

 var arrayObjects = data;