ATND JSONオブジェクトのバグ?
ATND APIでJSONオブジェクトで結果を得ようとすると,たまに返されるJSONオブジェクトに円マークがエスケープなしで混入される.
このため,普通のJSONパーサでは読めない(例外でちゃうからね).
require 'json' require 'open-uri' require 'timeout' def download(uri) begin open(uri){|f| f.read } rescue TimeoutError else end end original = download("http://api.atnd.org/events/?keyword=rake:money&format=json&count=20") a = 0x1C k="" # なんかRubyっぽくない k = k + a.chr revised = t.gsub(k,"") v=JSON.parse(revised) # 置換された後なのでパースできる v=JSON.parse(original) # エラー