4

FlickrのAPIからRubyonRailsアプリに画像を読み込もうとしていますが、JSON.parse()行に「予期しないトークン」が表示されます。

ここで、返されたJSONで二重引用符がエスケープされた別の応答を見つけました。解決策は、最後に.gsubを追加することでしたが、それでもエラーが発生します。

誰もが問題が何であるか知っていますか?

def add

@jsonresults = open("http://api.flickr.com/services/rest/?method=flickr.interestingness.getList&api_key=bb398c11934abb6d51bdd720020f6a4a&per_page=1&page=1&format=json&nojsoncallback=1").read
@images = JSON.parse(@jsonresults.to_json.gsub('\"', '"'))

end

エラー:

JSON::ParserError in ImagesController#add

757: unexpected token at '"{"photos":{"page":1, "pages":500, "perpage":1, "total":500, "photo":[{"id":"8234011021", "owner":"24066605@N07", "secret":"b4c05df8c5", "server":"8341", "farm":9, "title":"Crescent Lake", "ispublic":1, "isfriend":0, "isfamily":0}]}, "stat":"ok"}"'
4

2 に答える 2

5

呼び出しによって返された json は正常に見えます。解析を次のように変更します。

@images = JSON.parse(@jsonresults)
于 2012-12-02T21:06:00.013 に答える
1

これは有効なJSONではありません。二重引用符の外側のセットは属していません。これは有効なバージョンです:

'{"photos":{"page":1, "pages":500, "perpage":1, "total":500, "photo":[{"id":"8234011021", "owner":"24066605@N07", "secret":"b4c05df8c5", "server":"8341", "farm":9, "title":"Crescent Lake", "ispublic":1, "isfriend":0, "isfamily":0}]}, "stat":"ok"}'
于 2012-12-02T21:05:01.900 に答える