廣泛的道歉,首先涉及到涉及代碼,js,Google Apps腳本和stackoverflow.com的n00b相關的任何錯誤。如何訪問Google Apps腳本中已解析的嵌套JSON中的對象
我試圖從API調用中提取多段線到谷歌地圖的Directions API。從API的結果分析,我得到:
{routes=[{summary=A215, copyrights=Map data ©2017 Google, legs=[{duration={text=18 mins, value=1108}, start_location={lng=-0.1295712, lat=51.4227696}, distance={text=7.2 km, value=7187}, start_address=London SW16 6ET, UK, end_location={lng=-0.0706306, lat=51.3869032}, duration_in_traffic={text=15 mins, value=882}, end_address=Woodside Green, London SE25 5EU, UK, via_waypoint=[], steps=[{duration={text=1 min, value=6}, start_location={lng=-0.1295712, lat=51.4227696}, distance={text=29 m, value=29}, travel_mode=DRIVING, html_instructions=Head <b>north</b> on <b>Streatham High Rd</b>/<b>A23</b> toward <b>Streatham Common N</b>/<b>A214</b>, end_location={lng=-0.1297011, lat=51.42301399999999}, polyline={[email protected]}},....
我的腳本如下:
function listJourneyPoints(value) {
//Temporary url for var value
var value = "https://maps.googleapis.com/maps/api/directions/json?origin=SW16%206ET&destination=SE25%205EU&mode=driving®ion=UK&departure_time=1507676400&key=AIzaSyDbswrt7RFy3s13ulO9BUY9jQUNchUfi4o";
//Call the google route planner api
var routeResponse = UrlFetchApp.fetch(value);
//Parse JSON from routeResponse
var json = routeResponse.getContentText();
var data = JSON.parse(json);
//Get the polyline
var polyl = data["routes"]["legs"]["steps"]["polyline"];
Logger.log (polyl);
}
我不能工作了如何通過數組和對象的折線導航。我知道點符號不適用於數組,所以使用了方括號,但無論我嘗試如何,我都無法通過data["routes"]["legs"]
繼續前進,但未從'未定義'中獲取「TypeError:無法讀取屬性」步驟。我知道這個問題可能在於我不瞭解數據結構,但經過幾個小時的搜索,包括使用online Json Parser來闡明結構,我仍然堅持,所以將不勝感激任何幫助。謝謝!
首先,「路線」不是一個對象,而是一個對象數組,因此它必須使用數字進行索引; 「腿」和「步」也一樣。 因此,要獲得的第一個對象的折線屬性的步驟數組中,第一腿陣列的對象的,路由數組的第一個對象,你會寫: data.routes [0] .legs [0] .steps [0] .polyline –