трудное время с JSON и Google Maps - PullRequest
1 голос
/ 20 октября 2010

Это может быть частый вопрос, но я не могу понять, как предотвратить ошибки в моем анализе, когда скрипт не может найти свойство ...

в XML было легко, потому что даже пустые свойства были похожи на <location/>

но теперь, если location недоступен, JSON paser не может найти его, и это приводит к ошибкам ... ИЛИ

может случиться, что у json другое свойство, или дети потеряли своего отца ..... так что, например, если вам нужно извлечь, LocalityName больше не находится под SubAdministrativeArea, но под AddressLine ...

Кто-нибудь из вас имеет опыт? какой лучший способ решить это и разобрать это правильно?

Ответы [ 2 ]

1 голос
/ 21 ноября 2010

Отвечая на один из ваших других вопросов, я написал следующий код javascript, чтобы получить значения lat и lng из JSON, возвращенного API-интерфейсом карт, без каких-либо проверок на нулевые результаты.

$.getJSON("getjson.php?address="+address,
        function(data){
            lat=data.results[0].geometry.location.lat;
            lng=data.results[0].geometry.location.lng;
                    //.....map initialization code      
       }    
    );

Теперь, если яДля проверки на нулевые результаты я бы изменил код следующим образом:

$.getJSON("getjson.php?address="+address,
            function(data){
                if (data.result.length>0) {
                          for (count=0;count<data.result.length;count++){
                             lat=data.results[count].geometry.location.lat;
                             lng=data.results[count].geometry.location.lng;
                           //.....map initialization code       
                           }
                        }
                }   
        );

Как вы можете видеть, разбор JSON естественен для javascript и многих других языков, так как он разрешается до массивов / списков иобъекты / словарь / хэш.

0 голосов
/ 20 октября 2010

Если я правильно понял, и вы используете библиотеку для преобразования в json, например, gson, попытайтесь создать некоторый массив объектов, например, arrayList в java, а затем преобразовать в json, чтобы каждый объект, который вы извлекали позже в javascript, был уникальным и, следовательно, понятным.во время отладки. Также, если вы не используете firebug, попробуйте, так как он ясно показывает данные json.cheers

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...