Rails从JSON数据访问哈希中的键

时间:2012-02-22 13:12:04

标签: ruby-on-rails json faraday

我有来自JSON对象的哈希。它看起来像这样:

  

JSON = {“kind”=>“calendar#freeBusy”,“timeMin”=>“2012-02-19T19:35:00.000Z”,“timeMax”=>“2012-02-19T19: 40:00.000Z“,”calendars“=> {”av3ddlgc54qe4brii4r7pius6k@group.calendar.google.com“=> {”busy“=> [{”start“=>”2012-02-19T19:35 :00Z“,”end“=>”2012-02-19T19:40:00Z“}]}}}

我想检查是否有任何忙碌的孩子(日历的孩子)。

我可以通过 JSON [“日历”]访问日历的孩子

返回:

  

{“av3ddlgc54qe4brii4r7pius6k@group.calendar.google.com”=> {“busy”=> [{“start”=>“2012-02-19T19:35:00Z”,“end”=> ; “2012-02-19T19:40:00Z”}]}}

但是 JSON [“日历”] [“忙碌”] (这是我认为您打算访问子元素的方式?)返回nil。

如何进入“忙碌”的孩子?

我使用JSON.parse创建了一个法拉第请求的哈希。

1 个答案:

答案 0 :(得分:6)

在您的情况下,

“busy”嵌套在“av3ddlgc54qe4brii4r7pius6k@group.calendar.google.com”下,因此您还需要包含此内容:JSON [“calendars”] [“av3ddlgc54qe4brii4r7pius6k@group.calendar.google.com “] [”忙碌“]。如果要访问所有日历的此属性,则必须循环:

JSON["calendars"].each do |key, value|
  # working with value["busy"]...
end