我有以下代码和输出,我找不到要解码的json数据的任何错误。任何人都可以帮我找到这个错误
CODE:
$.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);
});
}
});
输出:
[{"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}]
答案 0 :(得分:1)
数据仅返回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);
});
}
});
答案 1 :(得分:1)
当你指定dataType:json时,结果已经在jQuery中解析了。
而且,完整 function参数返回一个表示结果的对象而不是结果本身。
那种情况下你应该使用var top10Value = JSON.parse(data.responseText)
;
答案 2 :(得分:0)
即使dataType
未被指定,jQuery也足够聪明地解析响应。
在您的情况下,它已被指定,因此,已经解析,data
是已解析的JSON对象。
您正在做的是解析Object
。
dataType :(默认:智能猜测(xml,json,脚本或html))
输入:字符串
您期望从中获取的数据类型 服务器。如果没有指定,jQuery将尝试根据它推断它 响应的MIME类型(XML MIME类型将产生XML,在1.4中 JSON将产生一个JavaScript对象,在1.4脚本中将执行 脚本,其他任何东西都将作为字符串返回)。可用 types(并将结果作为成功的第一个参数传递 回调)是: