Tôi đang sử dụng API bản đồ của Google để truy xuất thông tin về tiểu bang/vùng/thành phố từ tra cứu mã bưu chính hay không. Vấn đề là trong một số trường hợp, tra cứu mã bưu điện sẽ không truy xuất tên thành phố. Ví dụ là 92625 (Hoa Kỳ).Kiểm tra xem các khóa/nút JSON có tồn tại
var g = new GClientGeocoder();
g.setBaseCountryCode('US');
g.getLocations('92625', function(response){
if (response) {
var place = response.Placemark[0];
var state = place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName;
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
GLog.write("City = "+city+" : State/Region = "+state+" : Country = " + g.getBaseCountryCode());
}
});
Trong trường hợp nhất định, như vậy sẽ không có tên thành phố do lỗi địa phương không xác định vì địa phương không tồn tại. Lỗi này ngăn phần còn lại của tập lệnh chạy.
tôi đã có thể khắc phục nó bằng cách ...
if (place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality != null)
var city = place.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;
else
var city = '';
... nhưng điều này đã cho tôi hoang tưởng về một lỗi tương tự cho các phím khác. Ví dụ: Nếu AdministrativeArea không xác định câu lệnh IF ở trên cũng sẽ gây ra lỗi không xác định. Vậy tôi có nên kiểm tra xem mỗi Key/Node có tồn tại không? Có vẻ là một cách tiếp cận lộn xộn bởi vì một số các phím này là 5 cấp độ sâu ... là có một cách dễ dàng hơn để đi về nó, có lẽ một số phương pháp JQuery tôi không quen thuộc với?
Trong ví dụ trên, luôn có 1 kết quả cho 92625. – Seth