我正在使用第三方API。我試圖用Ruby解析JSON。 JSON響應:如何使用Ruby解析JSON數組?
{
"metric_data": {
"from": "2014-09-22T23:33:20+00:00",
"to": "2014-09-23T00:03:20+00:00",
"metrics": [
{
"name": "HttpDispatcher",
"timeslices": [
{
"from": "2014-09-22T23:32:00+00:00",
"to": "2014-09-23T00:01:59+00:00",
"values": {
"requests_per_minute": 85700
}
}
]
}
]
}
}
我需要訪問的數據是requests_per_minute
。由於JSON.parse
返回一個Hash,好像我只能夠訪問此使用鍵:
hash = JSON.parse(response.body)
data = hash["metric_data"]
上面的代碼會產生一個嵌套的水平下降,類似這樣的:
{
"from": "2014-09-22T23:33:20+00:00",
"to": "2014-09-23T00:03:20+00:00",
"metrics": [
{
"name": "HttpDispatcher",
"timeslices": [
{
"from": "2014-09-22T23:32:00+00:00",
"to": "2014-09-23T00:01:59+00:00",
"values": {
"requests_per_minute": 85700
}
}
]
}
]
}
但是,如果我嘗試拼圖任何進一步的響應成爲一個數組,我收到一個錯誤:
data = hash["metric_data"]["metrics"]["timeslices"]
no implicit conversion of String into Integer (TypeError)
我相信錯誤是"metrics"
和"timeslices"
看起來是JSON數組,使用[]
而不是{}
。我真的需要一個理智的檢查。我在這裏錯過了什麼?我只是想訪問requests_per_minute
。
'哈希[ 「metric_data」] [ 「指標」] [0] [「timeslices」]' – apneadiving 2014-09-23 18:40:19