jQuery $ .getJSON - 如何解析flickr.photos.search REST API调用?

Cha*_*eus 13 jquery parsing json flickr

尝试调整$ .getJSON Flickr示例:

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
    function(data){
    $.each(data.items, function(i,item){
        $("<img/>").attr("src", item.media.m).appendTo("#images");
        if ( i == 3 ) return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

从flickr.photos.search REST API方法中读取,但此调用的JSON响应不同.

这是我到目前为止所做的:

var url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=YOURAPIKEYHERE&tags=yokota+air+base&safe_search=1&per_page=20";
var src;
$.getJSON(url + "&format=json&jsoncallback=?", function(data){
    $.each(data.photos, function(i,item){
        src = "http://farm"+ item.photo.farm +".static.flickr.com/"+ item.photo.server +"/"+ item.photo.id +"_"+ item.photo.secret +"_m.jpg";
        $("<img/>").attr("src", src).appendTo("#images");
        if ( i == 3 ) return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

我想我没有正确构建图像src.根据JSON响应的内容,找不到有关如何构建映像src的任何文档.你如何解析flickr.photos.search REST API调用?

Cha*_*eus 25

没关系,我明白了.对于那些感兴趣的人,它被解析如下:

var url = "http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=YOURAPIKEYHERE&tags=yokota+air+base&safe_search=1&per_page=20";
var src;
$.getJSON(url + "&format=json&jsoncallback=?", function(data){
    $.each(data.photos.photo, function(i,item){
        src = "http://farm"+ item.farm +".static.flickr.com/"+ item.server +"/"+ item.id +"_"+ item.secret +"_m.jpg";
        $("<img/>").attr("src", src).appendTo("#images");
        if ( i == 3 ) return false;
    });
});
Run Code Online (Sandbox Code Playgroud)

请注意.photo已移至$ .each方法签名.


tcm*_*ris 5

通过选择'url_m'extras参数和per_page参数可以简化这一点......

extras=url_m&per_page=4
Run Code Online (Sandbox Code Playgroud)

那么你所需要的只是循环内...

$("<img/>").attr("src", item.url_m).appendTo("#images");
Run Code Online (Sandbox Code Playgroud)