Rails 从 JSON 数据中访问散列中的键

Posted

技术标签:

【中文标题】Rails 从 JSON 数据中访问散列中的键【英文标题】:Rails accessing keys in hashes from JSON data 【发布时间】:2012-02-22 13:12:04 【问题描述】:

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

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

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

我可以通过 JSON["calendars"]

访问日历的子节点

返回:

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

但是 JSON["calendars"]["busy"] (我认为您应该这样访问子元素?)返回 nil。

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Rails 从 JSON 数据中访问散列中的键的主要内容,如果未能解决你的问题,请参考以下文章

如何交换散列中的键和值

Redis常用命令 字符串键散列键

如何从我的 Ruby on Rails API 解析这些散列转换为字符串,以便它可以作为 Javascript 中的对象进行访问?

Rails 无法正确解码来自 jQuery 的 JSON(数组变成带有整数键的散列)

用于从Nosql数据的散列中获取数据的通用ruby方法实现

Predis 分片(一致哈希)