[英]Jquery - Ajax: SyntaxError: JSON.parse: unexpected character
我從我的服務器收到以下有效的 JSON:
[{"name":"Bubble Witch Saga 2","impressions":10749},{"name":"Grinder","impressions":11284},{"name":"Loovoo","impressions":12336},{"name":"Injustice God Among Us","impressions":12786},{"name":"Bookmyshow","impressions":13182},{"name":"Angry Bird","impressions":15404},{"name":"Flipkart","impressions":16856},{"name":"CNN-IBN","impressions":17230},{"name":"Fore Square","impressions":17595},{"name":"NDTV","impressions":19542},{"name":"Whatsapp","impressions":19976}]
但是我的控制台中不斷出現錯誤,提示“JSON.parse:意外字符”。 這是我的客戶端代碼:
$.ajax({
'type': 'get',
'data': {},
'dataType': 'json',
'url': 'dashboard/data/'+type,
'complete': function(data) {
var top10Value = JSON.parse(data);
$.each(top10Value, function(key,value){
console.log(key+" -- "+value);
});
}
});
為什么我收到這個錯誤?
jQuery 足夠聰明,可以按原樣解析響應,即使未指定dataType
。
在您的情況下,它是指定的,因此它已經被解析, data
是解析的 JSON 對象。
因此,您正在做的是解析Object
。
Doc 說:
數據類型:(默認:智能猜測(xml、json、腳本或 html))
類型:字符串
您期望從服務器返回的數據類型。 如果沒有指定,jQuery 將嘗試根據響應的 MIME 類型推斷它(XML MIME 類型將產生 XML,在 1.4 JSON 將產生一個 JavaScript 對象,在 1.4 腳本中將執行腳本,其他任何內容都將以字符串形式返回)。 可用類型(以及作為第一個參數傳遞給成功回調的結果)是:
僅返回 json 格式的數據,
$.ajax({
'type': 'get',
'data': {},
'dataType': 'json',//Return Json Format
'url': 'dashboard/data/',
'complete': function(data) {
//data returned already json format only
//var top10Value = JSON.parse(data);
$.each(top10Value, function(key,value){
console.log(key+" -- "+value);
});
}
});
當您指定 dataType : json 時,結果已在 jQuery 中解析。
此外,完整的函數參數正在返回一個表示結果的對象,而不是結果本身。
在這種情況下,您應該使用var top10Value = JSON.parse(data.responseText)
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.