Ruby Hash:无法将String转换为Integer

时间:2011-11-17 21:18:37

标签: ruby-on-rails ruby hash youtube-api

我是Ruby的新手,我在使用哈希时遇到了一些问题。

我从YouTube API返回了我转换为哈希的XML。这是Hash.from_xml()返回的哈希:http://pastebin.com/9xxE6iXU

我试图从每个结果的哈希中获取特定元素,例如标题,链接,作者等。每当我尝试循环哈希或抓取特定元素时,我收到“无法转换String into Integer“错误。

以下是我用于循环的代码:

@data["feed"]["entry"]["title"].each do  |key, value|
    "<p>"+key+" "+value+"</p>"
end

我也尝试抓取特定元素,例如@data [“feed”] [“entry”] [“title”] [0]。

如何遍历哈希并抓取特定元素?

1 个答案:

答案 0 :(得分:5)

这种情况正在发生,因为@data["feed"]["entry"]是哈希数组:

puts @data["feed"]["entry"].class  # => Array

此数组中的每个元素哈希都有“id”,“category”,“title”等值。

要获取每个标题,请尝试使用以下代码段:

@data["feed"]["entry"].each do |entry|
  puts entry["title"]
end
# => "TABE test adult basic education"
     "WhatCollegesHopeYouWon'tFindOutAboutACTSATTestPrep..."
     ....