【发布时间】:2014-02-28 19:00:10
【问题描述】:
我有一种方法可以从 Lastfm 获取艺术家的热门专辑
def get_albums
@albums = Array.new
@artistname.each do |name|
s = LastFM::Artist.get_top_albums(:artist => name, :limit => 1)
r = JSON.parse(s.to_json)['topalbums']['album']['name']
@albums.push r
end
end
只要艺术家有顶级专辑,此方法就可以正常工作并为每位艺术家返回专辑数组,如果没有,我会得到一个 NoMethodError 未定义方法 `[]' for nil:NilClass。
我正在尝试做的是在解析时添加一个检查以尝试通过此 NoMethodError 但似乎无法弄清楚。我试过这个:
def get_albums
@albums = Array.new
@artistname.each do |name|
s = LastFM::Artist.get_top_albums(:artist => name, :limit => 1)
r = JSON.parse(s.to_json)['topalbums']['album']['name']
if['topalbums']['album']['name'].empty?
@albums.push(@artistname + "does not have a top album")
else
@albums.push r
end
end
end
这给了我一个 TypeError can't convert String into Integer 消息
有什么想法可以解决这个问题吗?谢谢
【问题讨论】:
标签: ruby-on-rails ruby json parsing