简单的API调用来解析JSON

时间:2016-10-22 10:35:23

标签: ruby ruby-on-rails-4

我目前正在尝试在连接到OMBD api的Ruby on Rails中构建一个简单的Web应用程序。我是Ruby的新手,也是一般的编码。我正在尝试运行FOR循环来从搜索查询中收集所有标题。这是我的方法

def self.findAllTitles(title)         
  allresponses = []         
  for page in 1..100 do                    
    url="http://www.omdbapi.com/?s=#{title}&page=#{page}"         
    response = HTTParty.get(url)         
    responsebody = JSON.parse(response.body) 
    allresponses.concat(responsebody)         
  end                 
  return allresponses []     
end

我的观点中的代码:

<% @responsealltitles.each do |result| %>
<td><%= result["Title"] %></td>
<td><%= result["Year"] %></td>

尝试运行应用程序时出现以下错误:

没有将Hash隐式转换为数组

提取的来源(第11行):     puts responsebody = JSON.parse(response.body)

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您获得的回复不是哈希值。这是一系列哈希。请尝试打印出responsebody [0]。

responsebody = [{}, {}]

我猜您的回复正如上面的代码一样。调用reponsebody [0]将取出数组中的第一个元素(即你需要的响应哈希)。