1

奇妙な質問タグですが、何を試しても簡単に見えても達成できなかったので、それでも質問したかった

Google MapsDirectionsAPIで指定されたURLからポイントまでの期間を解析しようとしています。ここから受け取った回答のおかげで、JSONオブジェクトをキャプチャしてdurationオブジェクトに到達できましたが、何をしても、「duration」属性から内部値「text」または「value」を取得できませんでした。

これが応答です。

{
  "text" : "6 mins",
  "value" : 373
}

そしてこれが私がRailsで書いたコードです

@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'))
    hash = JSON.parse @request
    duration = hash['routes'][0]['legs'][0]['duration']

    respond_to do |format|
    format.html {render :index}
    format.json {render json: duration}
    end

注:もちろん、[0 ]メソッドと['text']メソッドは試されています。

4

2 に答える 2

1

最初に、期間をインスタンス変数として定義して、ビューで使用できるようにする必要があります(これを使用する必要がある場合)

@duration = hash['routes'][0]['legs'][0]['duration']
于 2012-09-14T10:55:39.203 に答える
0

duration ["text"]とduration["value"]が機能しませんでしたか?

    1.9.3p194 :001 > require 'net/http'
     => true 
    1.9.3p194 :002 > require 'json'
     => true 
    1.9.3p194 :003 > @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'));
    1.9.3p194 :004 >   hash = JSON.parse @request;
    1.9.3p194 :005 >   duration = hash['routes'][0]['legs'][0]['duration']
     => {"text"=>"6 mins", "value"=>373} 
    1.9.3p194 :006 > duration["text"]
     => "6 mins" 
    1.9.3p194 :007 > duration["value"]
     => 373 
于 2012-09-14T12:13:38.583 に答える