我是Ruby新手,需要访问MongoDB数据库并从搜索中返回一些信息。到目前为止,我可以获得所需的记录,但是我很难从返回的嵌套哈希中提取信息。
hash = {"Skills" => [{"_id" => 200, "description" => "Running"}, {"_id" => 201, "description" => "Jumping"}]}
这是返回的哈希值。我可以访问所需的哈希,但似乎无法提取"运行"和"跳跃"我需要的字符串。
我试过了
puts hash["Skills"]
但我得到:
{"_id"=>200, "description"=>"Running"}
{"_id"=>201, "description"=>"Jumping"}
我需要的是:
"Running"
"Jumping"
我原以为以下会有效:
puts hash["Skills"]["Description"]
答案 0 :(得分:1)
如果仔细观察,哈希的Skills
键是一个数组,而不是另一个哈希。因此,您可以使用Array#map
:
hash['Skills'].map { |s| s['description'] }
# => ["Running", "Jumping"]
答案 1 :(得分:0)
现在想出来。我刚刚在洗碗时意识到它当然是一个阵列。我现在将探讨戴维斯更优雅的答案
hash["skills"].each do |h|
puts h["description"]
end
Running
Jumping