目的of目的

技術的な事とか趣味な事を書いて日本語の練習

RubyでJSONPを読み込む

降水確率を知りたくてこちらのWebAPIを触っています。

気象庁の天気予報情報を XML で配信 - drk7jp

提供されるjsonの形式がcallback();が付与されている形式なので、JSONPとなっています。

自分の実行環境だと、JSONPの形式はJSON.loadではパースできないです。

irb(main):004:0> json_data = JSON.load res.body
JSON::ParserError: 795: unexpected token at 'drk7jpweather.callback({"link":"http://www.drk7.jp/weather/xml/13.xml","pref":{"area":{"伊豆諸

なのでcallback部分を削除して、JSONの形式にします。

# JSONP parse
res.body.gsub!(/^\w+\.callback\(/i,"")
res.body.gsub!(/\);/,"")

もしかしたら自分の環境が悪いのかもしれませんが、参考までに