gpt4 book ai didi

ruby-on-rails - Ruby 获取深度嵌套的 JSON API 数据

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:14 26 4
gpt4 key购买 nike

我有一个 Rails 应用程序,它从 World Weather Online API 获取响应。我正在使用 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")

最佳答案

你可能想看看JSONPath .它正是你所需要的。它的语法与 XPath 非常相似,但 JSONPath 适用于 JSON 数据(显而易见)。

有一个 Ruby 实现:https://github.com/joshbuddy/jsonpath

我个人在每个需要测试 JSON 响应的项目​​中都使用它。

关于ruby-on-rails - Ruby 获取深度嵌套的 JSON API 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12574838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com