2016-10-29 4 views
0

Google 지역 정보 호출 결과에서 데이터를 추출하려고합니다.JSON 구문 분석이 잘못되었습니다.

나는 다음과 같은 자바 스크립트를 실행하는 경우 :

alert(JSON.stringify(places[0].geometry.location)); 

I받을 예정으로 다음과 같은 출력 : 나는 위도 값과 실행을 추출 끝에 .lat 넣어 경우

{"lat":59.9138688,"lng":10.752245399999993} 

:

alert(JSON.stringify(places[0].geometry.location.lat)); 

내가 얻을 :

,
undefined 

다음과 같이 나는 JSON.stringify없이 경고를 실행하는 경우 :

alert(places[0].geometry.location.lat); 

내가 얻을 : 내가 잘못

function(){return a} 

을 뭐하는 거지?

+0

alert(places[0].geometry.location.lat.toString())을보십시오. 이미 숫자를 반환합니다. 문자열을 만들고 싶다면'places [0] .geometry.location.lat.toString()'을 사용할 수 있습니다. – Roysh

+0

'location' 객체에'toJSON' 메소드가 있다고 생각합니다.'lat '와'lng' 함수가 직렬화 될 때 작동합니다. ''[0] .geometry.location.toJSON'은 무엇을 보여줄까요? – apsillers

+0

내가 아는 한 toJSON 방법이 없습니다. –

답변

1

이 작업을 수행해야합니다 :

alert(places[0].geometry.location.lat()); 
+0

트릭 감사합니다. 그래도 결국 왜 필요합니까? –

+0

lat는 함수이므로 반드시 호출해야합니다. – Ali7091

+0

데이터 구조가 다음과 같은 경우 lat가 함수 인 이유는 무엇입니까? { "lat": 59.9138688, "lng": 10.752245399999993} –

2

JSON.stringify은 - 보통 (더 종류를 얻을 수 있지만) 객체를 받아들이는 기능입니다. places[0].geometry.location.lat은 숫자이고 이 아니기 때문에 숫자가 필요합니다. 개체가 필요합니다.

따라서 문자열을 얻으려면 번호 프로토 타입과 함께 제공되는 .toString() 함수를 사용해야합니다.

당신은 [0] .geometry.location.lat 장소를 캐릭터 라인 화 할 필요가 없습니다

+0

지금은 분명히 Roysh 고마워. –

+0

여러분을 환영합니다! 행운을 빈다! :) – Roysh

관련 문제