1

私は本当に簡単に何かを達成しようとしていますが、レールの初心者レベルまで解決できませんでした。問題は、JSON オブジェクトの属性を Rails オブジェクトにどのように割り当てるかです。いくつかのパラメーターを使用して、Google マップの URL にリクエストを送信しようとしています。JSON を解析しなくても問題なく動作しますが、解析しようとすると多くのエラーが発生します。URL ([http://maps.googleapis.com/maps/api/directions/json?origin=40.983204,29.0216549&destination=40.99160908659266,29.02334690093994&sensor=false][1]) をクエリしたときの Google からの通常の JSON 応答は次のとおりです。下のように。

{
  "routes" : [
    {
      "bounds" : {
        "southwest" : {
          "lat" : 40.98289,
          "lng" : 29.02054
        },
        "northeast" : {
          "lat" : 40.99148,
          "lng" : 29.02388
        }
      },
      "summary" : "Mühürdar Cd",
      "waypoint_order" : [],
      "legs" : [
        {
          "start_location" : {
            "lat" : 40.98322,
            "lng" : 29.02166
          },
          "distance" : {
            "text" : "1.3 km",
            "value" : 1324
          },

そして続きます。

「概要」属性を取得する必要があるコードは次のとおりです。

@request = Net::HTTP.get(URI.parse('http://maps.googleapis.com/maps/api/directions/json?origin=40.983204,29.0216549&destination=40.99160908659266,29.02334690093994&sensor=false'))
    @result=JSON.parse(@request)["routes"]["summary"]

応答から概要属性を取得する適切な方法は何ですか?

4

1 に答える 1

1
hash['routes'][0]['legs'][0]['duration']['text'] 

テキストにアクセスし、

hash['routes'][0]['legs'][0]['duration']['value'] 

値。ちょうど試して

hash['routes'][0]['legs'][0]['duration'].class 

それがどのタイプであるかを確認し、それに応じてアクセスする

于 2013-10-03T10:36:29.200 に答える