4

我正在尝试将图像从 Flickr 的 API 加载到 Ruby on Rails 应用程序中,但我的 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 回答