我有一个AJAX调用拉一个JSONP文件,它会在控制台中给我数据,但当我尝试将结果放入一个数组:topics
时,我收到一个错误。
$.ajax({
type: 'GET',
url: 'http://demo.omnigon.com/christian_bovine/nbapulse/json/all.json',
dataType : 'jsonp',
jsonp : "callback",
jsonpCallback: "onDataLoaded",
success : function(data) {
console.log(data);
var topics = [];
$.each(data, function(i, item){
topics.push({
username: item.TopicName,
mentions: item.LastHourCount,
totalcount: item.TotalCount,
daycount: item.LastHourCount
});
});
console.log(topics);
$('#leader').tmpl(topics).appendTo('#top3');
}
});
如果我使用$.each(data.results, function(i, item)
,它将显示我的jQuery模板,但所有数据都将是undefined
。所以我认为问题与此有关?
答案 0 :(得分:2)
$.each(data.data, function(i, item){
这应该可以解决问题,您的对象如下所示:
{
data : [
{},
{},
...
]
}
因此,在迭代结果之前,您需要选择data
属性。
答案 1 :(得分:0)
你的$ .each应该是这样的:
$.each(data.data, function(i, item){
topics.push({
username: item.TopicName,
mentions: item.LastHourCount,
totalcount: item.TotalCount,
daycount: item.LastHourCount
});
});
注意它的“data.data”而非“数据”。