Ruby Hash:无法将String转换为Integer

Jar*_*red 4 ruby hash ruby-on-rails youtube-api

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

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

我试图从每个结果的哈希中获取特定元素,例如标题,链接,作者等.每当我尝试循环哈希或抓取特定元素时,我收到"无法将字符串转换为整数"错误.

这是我用于循环的代码:

@data["feed"]["entry"]["title"].each do  |key, value|
    "<p>"+key+" "+value+"</p>"
end
Run Code Online (Sandbox Code Playgroud)

我也试过抓取特定的元素,比如@data ["feed"] ["entry"] ["title"] [0].

如何循环哈希并抓取特定元素?

War*_*Hog 5

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

puts @data["feed"]["entry"].class  # => Array
Run Code Online (Sandbox Code Playgroud)

此数组中的每个元素哈希都具有"id","category","title"等值.

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

@data["feed"]["entry"].each do |entry|
  puts entry["title"]
end
# => "TABE test adult basic education"
     "WhatCollegesHopeYouWon'tFindOutAboutACTSATTestPrep..."
     ....
Run Code Online (Sandbox Code Playgroud)