JSON和意外字符

JSON and unexpected character

本文关键字:字符 意外 JSON      更新时间:2023-10-11

考虑到这个结果,我从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 

所以我想知道为什么我的对象总是返回"意外字符"。

使用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
    }
}); 

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

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

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

您正试图解析数组,因此出现错误。

所以更改

var arrayObjects = data;