코드, js, Google Apps Script 및 실제로 stackoverflow.com과 관련하여 n00b가되는 것과 관련하여 광범위한 스펙트럼 사과를 시작합니다.Google Apps Script에서 파싱 된 중첩 JSON으로 객체에 액세스하는 방법
Google지도의 Directions API에 대한 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);
}
나는 폴리 라인에 배열과 객체를 탐색하는 방법을 작동하지 않을 수 있습니다. 나는 점 표기법이 대괄호를 사용했기 때문에 배열에서 작동하지 않는다는 것을 알고 있습니다. 그러나 무엇이든 시도해 보니을 얻지 않고 'TypeError : 속성을 읽을 수 없습니다 "단계가 정의되지 않은 상태에서 읽을 수 없습니다. 나는 아마도 데이터 구조를 이해하지 못하는 문제가 있음을 알고 있지만, 구조를 설명하기 위해 online Json Parser을 사용하는 것을 포함하여 몇 시간의 검색 후에도 나는 여전히 고착되어 있으므로 도움이된다면 감사 할 것입니다. 감사!
먼저 "routes"는 객체가 아니라 객체의 배열이므로 숫자를 사용하여 색인을 생성해야합니다. "다리"와 "계단"도 마찬가지입니다. data.routes : 그래서 다리 배열의 객체의 첫 번째의, 단계 배열의 첫 번째 개체의 폴리 라인 속성을 얻기 위해, 경로 배열의 첫 번째 목적, 당신은 다음과 같이 작성 [0] .legs [0] .steps [0] .polyline –