【发布时间】:2012-09-16 11:48:02
【问题描述】:
我有一个从 World Weather Online API 获得响应的 rails 应用程序。我正在使用 rest-client gem,响应是 JSON 格式。
我使用以下方法解析响应:
parsed_response = JSON.parse(response)
parsed_response 显然是一个哈希。
我需要的数据是一个散列内的字符串,一个数组内的一个散列内的另一个数组内的另一个散列内的另一个散列内的另一个散列。
最内层的嵌套散列在["hourly"] 内部,这是一个由8 个散列组成的数组,每个散列有20 个键,拥有各种天气参数的字符串值。数组中的每个哈希值都是一天中不同的时间(预测是每三个小时一次,3*8 = 24 小时)。
例如,如果我想要晚上 9 点的膨胀高度(以米为单位),我可以通过以下调用找到它:
@swell_height = parsed_data["data"]["weather"][0]["hourly"][7]["swellHeight_m"]
数组中第7个元素对应"time" => "2100"的地方
虽然我绝对可以使用它,但我很好奇是否有更直接的方法来访问我的数据,比如如果它是一个数据库表,我可以使用活动记录,例如:
@swell_height = parsed_data.swellHeight_m.where(:time => "2100")
【问题讨论】:
标签: ruby-on-rails ruby json api hash