0
我已經成功地進行使用代碼線沿線的API調用到Facebook,Twitter以及LastFM等檢索喜歡,關注者和聽衆多行:的Rails 3 - 檢索JSON響應
def get_twitter
@artist = Artist.accessible_by(current_ability).find(params[:id])
if @artist.twitter_screen_name.present?
require 'open-uri'
require 'json'
result = JSON.parse(open("https://api.twitter.com/1/users/show.json?screen_name="<<@artist.twitter_screen_name<<"&include_entities=true").read)
@followers = result["followers_count"]
end
end
這工作細如只有一個數據集返回並且很容易訪問我想要的位。 LastFM等的響應嵌套而它扔我,我成功地訪問了聽衆數幾乎完全一樣,但上面只使用了線:
@listeners = result["artist"]["stats"]["listeners"].to_i
現在,我試圖從Songkick的檢索事件列表。顯然,一個響應包含多個事件,所以我在知道如何循環響應時遇到了麻煩。
他們的開發者指南是在這裏:http://www.songkick.com/developer/upcoming-events-for-artist
樣品迴應如下,但是這僅僅是爲了單個事件:
{
"resultsPage:" {
"results": { "event": [
{
"id":11129128,
"type":"Concert",
"uri":"http://www.songkick.com/concerts/11129128-wild-flag-at-fillmore?utm_source=PARTNER_ID&utm_medium=partner",
"displayName":"Wild Flag at The Fillmore (April 18, 2012)",
"start":{"time":"20:00:00",
"date":"2012-04-18",
"datetime":"2012-04-18T20:00:00-0800"},
"performance":[{"artist":{"uri":"http://www.songkick.com/artists/29835-wild-flag?utm_source=PARTNER_ID&utm_medium=partner",
"displayName":"Wild Flag","id":29835,"identifier":[]},
"displayName":"Wild Flag",
"billingIndex":1,
"id":21579303,
"billing":"headline"}],
"location":{"city":"San Francisco, CA, US","lng":-122.4332937,"lat":37.7842398},
"venue":{"id":6239,
"displayName":"The Fillmore",
"uri":"http://www.songkick.com/venues/6239-fillmore?utm_source=PARTNER_ID&utm_medium=partner",
"lng":-122.4332937, "lat":37.7842398,
"metroArea":{"uri":"http://www.songkick.com/metro_areas/26330-us-sf-bay-area?utm_source=PARTNER_ID&utm_medium=partner",
"displayName":"SF Bay Area","country":{"displayName":"US"},"id":26330,"state":{"displayName":"CA"}}},
"status":"ok",
"popularity":0.012763
}, ....
]},
"totalEntries":24,
"perPage":50,
"page":1,
"status":"ok"
}
}
沒有人有任何指針?
非常好,謝謝! – Raoot