Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么我的JSON.parse失败了?RubyonRails_Ruby On Rails_Ruby_Json_Flickr_Open Uri - Fatal编程技术网

Ruby on rails 为什么我的JSON.parse失败了?RubyonRails

Ruby on rails 为什么我的JSON.parse失败了?RubyonRails,ruby-on-rails,ruby,json,flickr,open-uri,Ruby On Rails,Ruby,Json,Flickr,Open Uri,我试图将Flickr的API中的图像加载到RubyonRails应用程序中,但在JSON.parse()行中得到了“意外标记” 我在这里发现了另一个响应,返回的JSON的双引号被转义了,解决方案是在末尾添加.gsub,但我仍然得到一个错误 有人知道问题出在哪里吗 def add @jsonresults = open("http://api.flickr.com/services/rest/?method=flickr.interestingness.getList&api_key=b

我试图将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"}"'
外部的双引号集不属于。这是有效的版本:

'{"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"}'

调用返回的json看起来很好。将解析更改为:

@images = JSON.parse(@jsonresults)

所以我可以使用.chop删除最后的双引号。。。。关于如何摆脱第一个的建议?解决了这个问题。正如他所说,调用返回的JSON看起来非常好。的确如此。不知道我为什么要把事情复杂化。
@json\u results.chop.reverse.chop.reverse