2013-04-18 3 views
2

У меня есть JSON, как это -Получение значения из JSON

.... 
     "location" : { 
      "lat" : 37.42140090, 
      "lng" : -122.08537010 
     }, 
    .... 

Я пытаюсь получить доступ к лат и LNG значения. Как мне это сделать?

Мой код

 results[0].geometry.location.lat 
    or results[0].geometry.location.lng 

не работает. Но я получаю вывод, когда я просто использую результаты [0] .geometry.location.

JSON Я использую это - http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true

Update -

Это, как я делаю запрос к API

  geocoder.geocode({ 'address': search_addr}, function(results, status) { 
      if (status == google.maps.GeocoderStatus.OK) { 
       var t = results[0].geometry.location.lat; 
      } else { 
       alert('Geocode was not successful for the following reason: ' + status); 
      } 

Благодаря

+0

и то, что '' geometry' datatype' т.е. сво 'json' или' array' – Rafee

+0

Это 'или 'действительно в вашем коде? остальная часть выглядит правильно. –

+0

Код выглядит нормально –

ответ

3

При использовании API для JavaScript Google, вы обычно не взаимодействуют с анализируемой JSON непосредственно, а с оберткеObject с.

В частности, results[0].geometry.location будет служить примером google.maps.LatLng. Таким образом, вместо того чтобы держать сами ценности, lat и lng методы, которые будут return значения:

var geoLoc = results[0].geometry.location; 
var lat = geoLoc.lat(); 
var lng = geoLoc.lng(); 
+0

Спасибо. Я также узнал, что могу получить доступ к этим значениям, используя следующий код "" var lat = results [0] .geometry.location.jb; var lng = результаты [0] .geometry.location.kb; «Что я, хотя был странным .. Но спасибо большое .. – Fox

+0

@Fox Вы можете. Те, которые кажутся« * частными * »(или, по крайней мере, внутренние свойства), которые, вероятно, читаются с помощью 'lat()' и 'lng()' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' гарантия не изменится. –

5

Я попробовал ваш код с

alert(json.results[0].geometry.location.lat); 

и она работает, как вы можете видеть в этом скрипку:

http://jsfiddle.net/SWTZQ/

+0

Для меня он говорит json undefined на моем компьютере. Я включил JQuery ... – Fox

+0

Когда я просто делаю это предупреждение (результаты [0] .geometry.location) Я получаю результат как (36.311882, -119.6589889), но не может получить доступ к отдельным элементам. – Fox

Смежные вопросы