迭代Ruby中的嵌套哈希

时间:2014-10-11 14:36:55

标签: ruby json hash

我有一个json文件:

{
"public_holidays": [
{
"date": "2013/1/1",
"name": "New Years Day" 
},
{
"date": "2013/1/21",
"name": "Luther King Day"
},
{
"date": "2013/5/27",
"name": "Memorial Day"
}
]
}

我的目标是尝试捕获此文件中的所有日期。我能够在特定索引上获取日期,但不能同时获取所有日期。这就是我所拥有的:

@file = File.read('public_holidays.json')

def json_file
  holiday_dates = JSON.parse(@file)
  holiday_dates.each do |key, value|
    puts value[0]['date']
  end
end

这导致2013/1/1,但我需要所有日期,而不仅仅是一个。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您的代码只会获取"public_holidays"数组中的第一个元素。

尝试这样的事情:

holiday_dates = JSON.parse(@file)
dates = holiday_dates['public_holidays'].map { |x| x['date'] }