2012-02-01 3 views
1

Пытается прочитать в некоторой информации из Google Maps api в мое приложение с JS. Но хаус-тишина обрушилась на доступ к информации в возвращаемом объекте jSON. My JS является ...чтение в jSON данных с javascript

 var site = "./maps/scripts/reverseGeocode/locale.php"; 
     var params = "lat="+lat+"&"+"lng="+lng; 

     var object = system.functions().ajax(site, params); 

      var result = object.address_components[0]; 

      alert(result); 

Объект JSon выглядит следующим образом ...

{ 
    "results" : [ 
     { 
    "address_components" : [ 
     { 
      "long_name" : "24", 
      "short_name" : "24", 
      "types" : [ "street_number" ] 
     }, 
     { 
      "long_name" : "Carabella St", 
      "short_name" : "Carabella St", 
      "types" : [ "route" ] 
     }, 
     { 
      "long_name" : "Kirribilli", 
      "short_name" : "Kirribilli", 
      "types" : [ "locality", "political" ] 
     }, 
     { 
      "long_name" : "New South Wales", 
      "short_name" : "NSW", 
      "types" : [ "administrative_area_level_1", "political" ] 
     }, 
     { 
      "long_name" : "Australia", 
      "short_name" : "AU", 
      "types" : [ "country", "political" ] 
     }, 
     { 
      "long_name" : "2061", 
      "short_name" : "2061", 
      "types" : [ "postal_code" ] 
     } 
    ], 
    "formatted_address" : "24 Carabella St, Kirribilli NSW 2061, Australia", 
    "geometry" : { 
     "bounds" : { 
      "northeast" : { 
       "lat" : -33.84886950, 
       "lng" : 151.21871730 
      }, 
      "southwest" : { 
       "lat" : -33.84960880, 
       "lng" : 151.21810640 
      } 
     }, 
     "location" : { 
      "lat" : -33.84892950, 
      "lng" : 151.21817770 
     }, 
     "location_type" : "RANGE_INTERPOLATED", 
     "viewport" : { 
      "northeast" : { 
       "lat" : -33.84789016970850, 
       "lng" : 151.2197608302915 
      }, 
      "southwest" : { 
       "lat" : -33.85058813029150, 
       "lng" : 151.2170628697085 
      } 
     } 
    }, 
    "types" : [ "street_address" ] 
    }, 
    { 
    "address_components" : [ 
     { 
      "long_name" : "Kirribilli", 
      "short_name" : "Kirribilli", 
      "types" : [ "locality", "political" ] 
     }, 
     { 
      "long_name" : "New South Wales", 
      "short_name" : "NSW", 
      "types" : [ "administrative_area_level_1", "political" ] 
     }, 
     { 
      "long_name" : "Australia", 
      "short_name" : "AU", 
      "types" : [ "country", "political" ] 
     }, 
     { 
      "long_name" : "2061", 
      "short_name" : "2061", 
      "types" : [ "postal_code" ] 
     } 
    ], 
    "formatted_address" : "Kirribilli NSW 2061, Australia", 
    "geometry" : { 
     "bounds" : { 
      "northeast" : { 
       "lat" : -33.84245090, 
       "lng" : 151.22032150 
      }, 
      "southwest" : { 
       "lat" : -33.85270230, 
       "lng" : 151.21152060 
      } 
     }, 
     "location" : { 
      "lat" : -33.84753980000001, 
      "lng" : 151.21314540 
     }, 
     "location_type" : "APPROXIMATE", 
     "viewport" : { 
      "northeast" : { 
       "lat" : -33.84245090, 
       "lng" : 151.22032150 
      }, 
      "southwest" : { 
       "lat" : -33.85270230, 
       "lng" : 151.21152060 
      } 
     } 
    }, 
    "types" : [ "locality", "political" ] 
    }, 
    { 
    "address_components" : [ 
     { 
      "long_name" : "2061", 
      "short_name" : "2061", 
      "types" : [ "postal_code" ] 
     }, 
     { 
      "long_name" : "New South Wales", 
      "short_name" : "NSW", 
      "types" : [ "administrative_area_level_1", "political" ] 
     }, 
     { 
      "long_name" : "Australia", 
      "short_name" : "AU", 
      "types" : [ "country", "political" ] 
     } 
    ], 
    "formatted_address" : "New South Wales 2061, Australia", 
    "geometry" : { 
     "bounds" : { 
      "northeast" : { 
       "lat" : -33.84234370, 
       "lng" : 151.22032150 
      }, 
      "southwest" : { 
       "lat" : -33.85270230, 
       "lng" : 151.20932150 
      } 
     }, 
     "location" : { 
      "lat" : -33.84839570, 
      "lng" : 151.21461550 
     }, 
     "location_type" : "APPROXIMATE", 
     "viewport" : { 
      "northeast" : { 
       "lat" : -33.84234370, 
       "lng" : 151.22032150 
      }, 
      "southwest" : { 
       "lat" : -33.85270230, 
       "lng" : 151.20932150 
      } 
     } 
    }, 
    "types" : [ "postal_code" ] 
    }, 
    { 
    "address_components" : [ 
     { 
      "long_name" : "New South Wales", 
      "short_name" : "NSW", 
      "types" : [ "administrative_area_level_1", "political" ] 
     }, 
     { 
      "long_name" : "Australia", 
      "short_name" : "AU", 
      "types" : [ "country", "political" ] 
     } 
    ], 
    "formatted_address" : "New South Wales, Australia", 
    "geometry" : { 
     "bounds" : { 
      "northeast" : { 
       "lat" : -28.15619210, 
       "lng" : 153.63873290 
      }, 
      "southwest" : { 
       "lat" : -37.50503180, 
       "lng" : 140.99921220 
      } 
     }, 
     "location" : { 
      "lat" : -31.25321830, 
      "lng" : 146.9210990 
     }, 
     "location_type" : "APPROXIMATE", 
     "viewport" : { 
      "northeast" : { 
       "lat" : -28.15619210, 
       "lng" : 153.63873290 
      }, 
      "southwest" : { 
       "lat" : -37.50503180, 
       "lng" : 140.99921220 
      } 
     } 
    }, 
    "types" : [ "administrative_area_level_1", "political" ] 
    }, 
    { 
    "address_components" : [ 
     { 
      "long_name" : "Australia", 
      "short_name" : "AU", 
      "types" : [ "country", "political" ] 
     } 
    ], 
    "formatted_address" : "Australia", 
    "geometry" : { 
     "bounds" : { 
      "northeast" : { 
       "lat" : -9.22108360, 
       "lng" : 159.10545890 
      }, 
      "southwest" : { 
       "lat" : -54.77721850, 
       "lng" : 112.92145430 
      } 
     }, 
     "location" : { 
      "lat" : -25.2743980, 
      "lng" : 133.7751360 
     }, 
     "location_type" : "APPROXIMATE", 
     "viewport" : { 
      "northeast" : { 
       "lat" : -9.22108360, 
       "lng" : 159.10545890 
      }, 
      "southwest" : { 
       "lat" : -54.77721850, 
       "lng" : 112.92145430 
      } 
     } 
    }, 
    "types" : [ "country", "political" ] 
    } 
    ], 
    "status" : "OK" 
} 

Я пытаюсь получить доступ к адресной компонент ... но я не уверен, как пройти объект правильно .. может кто-то мне помочь.

  "long_name" : "Kirribilli", 
      "short_name" : "Kirribilli", 
+0

да это мой домашний адрес ... пожалуйста, не выслеживать me – Christopher

ответ

3

Это следует сделать это:

var long_name = object.address_components[2].long_name; 
var short_name = object.address_components[2].short_name; 

EDIT: предлагаю вам использовать JQuery Ajax вместо того, чтобы для выборки:

var site = "./maps/scripts/reverseGeocode/locale.php"; 
var params = "lat="+lat+"&"+"lng="+lng; 

$.get(site + '/' + params, function(data) { 
    var long_name = data.address_components[2].long_name; 
    var short_name = data.address_components[2].short_name; 
}); 
+0

Спасибо за ваш быстрый ответ ... он возвращает object.address_components не определено. Это проблема, которую я имел ... ее любопытные любопытные мысли? – Christopher

+0

спасибо, но я стараюсь избегать jQuery для этого типа вещей. – Christopher

+0

, тогда вы должны декодировать json старый способ way =) вот учебник http://www.json.org/js.html –

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