我正在使用以下 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,但它也不太理想。
可以将[0]
替换为first
,字符较多但概念更简单,速度也稍快。
response["routes"].first["legs"].first["steps"].first["end_location"]
或者,您也可以这样做:
["routes", 0, "legs", 0, "steps", 0, "end_location"].inject(response, &:fetch)
我是一名优秀的程序员,十分优秀!