0

先週プログラミングを始めたばかりの初心者です。コード部分 -

var office = document.getElementById('start').value;
var pickup = document.getElementById('start').value;
 $.get("https://maps.googleapis.com/maps/api/distancematrix/json?origins="+office+"&destinations="+pickup+"&mode=drivinging&language=en&sensor=false",function(data){
alert(data['status']);

返されたデータ -

http://maps.googleapis.com/maps/api/distancematrix/json?origins=edingbourgh&destinations=london&mode=drivinging&language=en&sensor=false

data['status']またはdata.statusを使用して、「 destination_addresses」、「status」、および「origin_addresses 」にアクセスして表示できますが、 rows[]内の何かにアクセスすることはできません。

私はただdata.row.distance.textを実行できると思ってい ましたが、何も起こりません。

どんな助けでも大歓迎です

4

4 に答える 4

2

rowsは配列でありelements、次のようにアクセスする必要があります。

var text = data.rows[0].elements[0].distance.text;
// this yields "652 km"

配列には 1 つしかないため、配列の最初の要素を返す必要があります。rows[]何もアクセスしません。括弧内に数字が必要です。複数のオブジェクトrowsまたはelements. 必要な配列インデックスを入力します。

var text = data.rows[2].elements[5].distance.text;
// this yields text from the sixth element of the third row.


元の応答:

  {
     "destination_addresses" : [ "London, UK" ],
     "origin_addresses" : [ "Edinburgh, City of Edinburgh, UK" ],
     "rows" : [
        {
           "elements" : [
              {
                 "distance" : {
                    "text" : "652 km",
                    "value" : 652135
                 },
                 "duration" : {
                    "text" : "6 hours 44 mins",
                    "value" : 24247
                 },
                 "status" : "OK"
              }
           ]
        }
     ],
     "status" : "OK"
  }
于 2013-08-16T12:24:16.733 に答える
1

試す

alert(data['rows'][0].elements[0].distance.text);

出力 625km

于 2013-08-16T12:24:28.390 に答える
0

jquery をインクルードし、返された json データを解析してみてくださいJSON.parse。これにより、javascript 配列オブジェクトが得られます。

var dataArray = JSON.parse(data['status']);
alert(dataArray['status']);

お役に立てれば

于 2013-08-16T12:24:48.780 に答える