2012-05-11 58 views
0

我正在循環從Flickr返回的JSON。我期待下面將提醒0,1,2,3...等爲指標,而是它正在提醒id,server,farm,etcJquery .each()和Flickr Json

$.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 

}); 

} 

編輯正如工程師指出的,我不應該循環這個ND而是應該只是 使用data.photo.....

+0

所以如果返回的JSON的密鑰擁有id,服務器等,那麼你會得到那個,你想索引每個鍵:屬性對? –

+0

嗨是的,我需要一個索引到每個鍵:屬性對。我需要知道哪一個是1st,10th等。 – james

回答

1

data.photo是HashMap的,這就是爲什麼你在'each' callback越來越(key,value)雙。

根據API'method=flickr.photos.getInfo'返回單張照片的信息。這意味着,data.photo是一堆屬性((鍵,值)對),並沒有意義枚舉這些。

+0

Thanks.I需要爲返回的每組JSON指定一個索引。我怎樣才能做到這一點? – james

+0

你有什麼嘗試?請注意,在一個javascript對象中的鍵的順序可能會有所不同... – rjz

+0

@james你是什麼意思的一套JSON''? – Engineer

0

如果你想索引而不是ID,服務器,公司,那麼你可以試試這個

var count = 0; 
$.each(data.photo, function(index,item){ 
     alert(index + ' is at ' + count); 
     count++; 
}); 
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' 
}]