質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

1486閲覧

Google Maps Direction APIから得たjsonデータをhashに変換したい

coffeeET

総合スコア7

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2018/06/19 07:40

ruby上でGoogle Maps Direction APIを叩き,経路情報を取得し,徒歩での移動時間を取得したいと考えています.
そこで,下のコードでjsonをhashにparseしましたが,深い箇所がparse出来ず,参照出来なくて困っています.
legs以下の値をruby上で取得する方法をご教授願えると幸いです.

ruby

1# APIから得たjsonデータをhashにparse 2data = JSON.parse(response.body) 3puts data["routes"] 4puts data["routes"]["legs"] # Error : no implicit conversion of String into Integer

ruby

1# parse後 2"geocoded_waypoints"=>[ 3 { 4 "geocoder_status"=>"OK", 5 "place_id"=>"ChIJC6fjlY3mAGARSshZ6CLIrhs", 6 "types"=>[ 7 "establishment", 8 "point_of_interest", 9 "train_station", 10 "transit_station" 11 ] 12 }, 13 { 14 "geocoder_status"=>"OK", 15 "place_id"=>"ChIJ67mcWJLmAGARrUf0FlFtm7w", 16 "types"=>[ 17 "department_store", 18 "establishment", 19 "point_of_interest", 20 "store" 21 ] 22 } 23], 24"routes"=>[ 25 { 26 "bounds"=>{ 27 "northeast"=>{ 28 "lat"=>34.7029859, 29 "lng"=>135.4985137 30 }, 31 "southwest"=>{ 32 "lat"=>34.7023575, 33 "lng"=>135.4959768 34 } 35 }, 36 "copyrights"=>"地図データ ©2018 Google, ZENRIN", 37 "legs"=>[ 38 { 39 "distance"=>{ 40 "text"=>"0.3 km", 41 "value"=>343 42 }, 43 "duration"=>{ 44 "text"=>"5分", 45 "value"=>303

json

1{ 2 "geocoded_waypoints": [ 3 { 4 "geocoder_status": "OK", 5 "place_id": "ChIJC6fjlY3mAGARSshZ6CLIrhs", 6 "types": [ 7 "establishment", 8 "point_of_interest", 9 "train_station", 10 "transit_station" 11 ] 12 }, 13 { 14 "geocoder_status": "OK", 15 "place_id": "ChIJ67mcWJLmAGARrUf0FlFtm7w", 16 "types": [ 17 "department_store", 18 "establishment", 19 "point_of_interest", 20 "store" 21 ] 22 } 23 ], 24 "routes": [ 25 { 26 "bounds": { 27 "northeast": { 28 "lat": 34.7029859, 29 "lng": 135.4985137 30 }, 31 "southwest": { 32 "lat": 34.7023575, 33 "lng": 135.4959768 34 } 35 }, 36 "copyrights": "地図データ ©2018 Google, ZENRIN", 37 "legs": [ 38 { 39 "distance": { 40 "text": "0.3 km", 41 "value": 343 42 }, 43 "duration": { 44 "text": "5分", 45 "value": 303 46 }, 47〜以下略〜

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

hashの中に一部Arrayが混ざっていたようでした.

例をあげます.
hashにparseした後,["routes"]["legs"]["duration"]["value"]に参照するときには下のコードで参照できました.

ruby

1puts data["routes"][0]["legs"][0]["duration"]["value"]

投稿2018/06/21 09:30

coffeeET

総合スコア7

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問