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はハッシュマップです。そのため、で(key,value)ペアを取得してい'each' callbackます。

API によると'method=flickr.photos.getInfo'、1枚の写真の情報が返されます。つまり、一連data.photoのプロパティ((key、value)ペア)であり、それらを列挙する意味はありません。

于 2012-05-11T17:25:33.780 に答える
1

flickr.photos.getInfoオブジェクト形式({})で1枚の写真を返します。

{
  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 に答える