1

次の URL で道順をリクエストしています。

http://maps.googleapis.com/maps/api/directions/json?origin=43.656877,-79.32085&destination=Montreal&sensor=false

次に、Google は巨大な JSON を送り返します。これよりも優れた方法で手順にアクセスしたいと考えています。

response = open("http://maps.googleapis.com/maps/api/directions/json?origin=#{lat1},#{lng1}&destination=#{lat2},#{lng2}&sensor=false").read
response = JSON.parse(response)

response["routes"][0]["legs"][0]["steps"][0]["end_location"]

これらすべての配列表記を使用せずに end_location にアクセスするより美しい方法はありますか? OpenStruct を使用することも考えましたが、それも理想的ではありません。

4

1 に答える 1

3

に置き換えることができます[0]firstこれは、より多くの文字ですが、より単純な概念であり、わずかに高速です。

response["routes"].first["legs"].first["steps"].first["end_location"]

または、これを行うこともできます。

["routes", 0, "legs", 0, "steps", 0, "end_location"].inject(response, &:fetch)
于 2012-10-30T16:47:12.660 に答える