0

我正在循环从 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.....

4

3 回答 3

1

data.photo是 hashmap,这就是为什么你(key,value)'each' callback.

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

于 2012-05-11T17:25:33.780 回答
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'
}]
于 2012-05-11T17:27:09.300 回答
0

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

var count = 0;
$.each(data.photo, function(index,item){
      alert(index + ' is at ' + count);
      count++;
 });
于 2012-05-11T17:26:57.787 回答