last.fm からいくつかのデータを取得して、単純なシナトラ アプリで使用しようとしています。ドキュメントを開く方法を考え出しましたが、ルビーでデータを抽出する際に問題が発生しました。これは、名前を取得したい API データの最初のリストです。
{"similarartists":{"artist":[{"name":"Sonny & Cher"}]}
これはリターンの単なる抜粋です。これを rb ファイルで使用しています。
require 'json'
require 'open-uri'
data = JSON.parse(open("http://ws.audioscrobbler.com/2.0/?method=artist.getsimilar&artist=editors&api_key=xxx&format=json").read)
puts data["similarartists"]["artist"]["name"]
ruby 1.9.3 で String を Integer に変換できない (TypeError) のですが、JSON の名前が整数ではありません。私はちょうど次を置く場合:
puts data["similarartists"]["artist"]
全体を返しますが、その中をつかんで名前を取得したいと思います。
"name"=>"Interpol"
名前が文字列のときに整数について不平を言う理由がわかりませんか? 誰かが私を助けてくれることを願っています!