使用Flickr API,Javascript / JQuery和AJAX,我有以下代码:
function getRequest(arguments)
{
var requestinfo;
$.ajax({
type: 'GET',
url: flickrurl + '&'+ arguments + '&jsoncallback=jsonCallback',
async: false,
jsonpCallback: 'jsonCallback',
dataType: 'jsonp',
success: function (json)
{
requestinfo = json;
//Parse attempt requestinfo = $.parseJSON(json);
//Old method return json;
}
});
return requestinfo;
}
当收到响应并且我尝试将json(响应)数据分配给变量requestinfo时(或者即使我直接执行'return json'行),我得到一个错误,指示返回值未定义。在使用success函数愚弄时,我注意到由于'json'被读作[object Object]而不是JSON响应,任何解析响应的尝试都会失败。
响应是否已经采用数组格式?如果没有,我怎么能达到这一点呢?
以下是一个示例JSON响应(有多种类型,因为需要不同的请求来接收所有需要的信息(Flickr API):
{
"collections": {
"collection": [
{
"id": "122388635-72157643471284884",
"title": "Test Gallery 2",
"description": "Test 2",
"iconlarge": "/images/collection_default_l.gif",
"iconsmall": "/images/collection_default_s.gif",
"set": [
{
"id": "72157643471292484",
"title": "Set 1",
"description": ""
}
]
},
{
"id": "122388635-72157643469075734",
"title": "Test Gallery 1",
"description": "Bing Photos",
"iconlarge": "http://farm3.staticflickr.com/2888/cols/72157643469075734_b9a37df67c_l.jpg",
"iconsmall": "http://farm3.staticflickr.com/2888/cols/72157643469075734_b9a37df67c_s.jpg",
"set": [
{
"id": "72157643469056814",
"title": "Test Gallery 1",
"description": "Bing Backgrounds"
}
]
}
]
},
"stat": "ok"
}
那么如何在不中断数据的情况下将接收的数据传递给其他功能呢?
答案 0 :(得分:0)
代码应该如下所示
success: function (collections)
{
$.each(collections,function(index,item){
var i=0;
$.each(item.conllection[i],function(index,item){
alert(item.id);
i++;
});
});
答案 1 :(得分:-1)