2015-10-28 76 views
2

我正在使用Google Maps API,並從Google獲取響應。只需要獲得距離「文本」值,例如57.6英里,持續時間「文本」的價值是從JSON返回的「1小時和1分鐘」。在angularjs中解析深JSON對象

{ 
 
    "destination_addresses" : [ "blah blah" ], 
 
    "origin_addresses" : [ "some address" ], 
 
    "rows" : [ 
 
     { 
 
     "elements" : [ 
 
      { 
 
       "distance" : { 
 
        "text" : "57.6 mi", 
 
        "value" : 92652 
 
       }, 
 
       "duration" : { 
 
        "text" : "1 hour 1 min", 
 
        "value" : 3664 
 
       }, 
 
       "status" : "OK" 
 
      } 
 
     ] 
 
     } 
 
    ], 
 
    "status" : "OK" 
 
}

我曾嘗試通過使用點符號和鍵值對解析出來,但我能得到最深的是越來越「行」 - 這回我Object對象。

+5

你'rows'其內部具有一個數組(一元)的距離。所以你可能需要'rows [0] .elements [0] .distance.text' – Claies

回答

1

@Claies打我給它,你可以使用data.rows[0].elements[0].distance.text

var data = { 
 
    "destination_addresses": ["blah blah"], 
 
    "origin_addresses": ["some address"], 
 
    "rows": [{ 
 
    "elements": [{ 
 
     "distance": { 
 
     "text": "57.6 mi", 
 
     "value": 92652 
 
     }, 
 
     "duration": { 
 
     "text": "1 hour 1 min", 
 
     "value": 3664 
 
     }, 
 
     "status": "OK" 
 
    }] 
 
    }], 
 
    "status": "OK" 
 
} 
 

 
document.write(data.rows[0].elements[0].distance.text)

+0

謝謝;完美地工作。 –

+0

同樣的道理,在這個語法中,data.rows [0] .elements [0] .distance.text,如果源中的「rows」是別的東西,例如'foo',那麼它就是數據.foo [0] .elements [0] .distance.text,還是它是一個語法的東西? –

+0

是的,那麼它會是'data.foo [0] .elements [0] .distance.text' – Jaco