Jquery .each()和Flickr Json

时间:2012-05-11 17:18:12

标签: jquery json flickr

我正在循环从Flickr返回的JSON。我希望以下内容可以提醒0,1,2,3...等索引,但它会警告id,server,farm,etc

$.each(data.photo, function(index,item){
             alert(index);

 });

修改 的 顺便说一句,我正在使用method=flickr.photos.getInfo

var Info = "http://api.flickr.com/services/rest/?method=flickr.photos.getInfo";
                Info += "&api_key=" + "myapikey";
            Info+= "&photo_id="+item.id;
            Info += "&format=json";
            Info+= "&jsoncallback=?";

$.getJSON(Info,loaded);

function loaded(){
$.each(data.photo, function(index,item){
      //Trying to get number of JSON Object (I am getting the info for 52 photos)....
      //I want to alert 0 through 52 here and do some further processing

});

}

修改 的 正如工程师所指出的那样,我不应该绕过这个而应该只是 使用data.photo.....

3 个答案:

答案 0 :(得分:1)

data.photo是哈希地图,这就是您在(key,value)中获得'each' callback对的原因。

根据API 'method=flickr.photos.getInfo'返回一张照片的信息。这意味着,data.photo是一堆属性((键,值)对),没有任何枚举的含义那些。

答案 1 :(得分:1)

flickr.photos.getInfo以对象形式({})返回单张照片。

{
  photo: { 
   owner: 1,
   title: 'photo title',
   // etc.
  }
}

如果(a)它们已被分配给对象(非常不寻常)或(b)您正在使用的API方法返回对象的数组,您只希望接收数字键。

photos: [{
   owner: 1,
   title: 'photo 1'
}, {
   owner: 1,
   title: 'photo 2'
}]

答案 2 :(得分:0)

如果你想索引而不是id,server,firm那么你可以试试这个

var count = 0;
$.each(data.photo, function(index,item){
      alert(index + ' is at ' + count);
      count++;
 });