Как обработать пропущенные значения lat long из ответа AJAX? Как обнаружить и выдать соответствующее предупреждение пользователю?

#json #server #format #response #handle

#json #сервер #формат #ответ #обрабатывать

Вопрос:

Я получаю ответ JSON от вызова AJAX, подобного приведенному ниже

 {"metadata":{"assetStatusAvailable":false},"data":[{"id":"209880948","name":"1:Periodic Report","domainObjectType":"assetmessageevent","domainObjectTypeId":"assetmessageevent_209880948","heading":null,"latitude":,"longitude":,"isAlertEvent":false,"eventTime":"2016-10-03T04:53:02","assetCategory":"Underground Tank 15000GL","configurationName":"Tank","mapCurrentSymbol":"","asset":{"id":"209843212","name":"TANK001","domainObjectType":"tank","domainObjectTypeId":"tank_209843212"}}]}
  

Здесь широта и долгота отсутствуют, поэтому они не анализируются и, следовательно, выдают ошибку. Как справиться с таким сценарием и передать соответствующее сообщение пользователю?

Ответ №1:

Используйте следующую функцию для проверки пустого значения и нулевого значения широты, долготы

 var checkBlankValue(){
        $.each(obj.data, function(key, value){
            if (key=='latitude' || key=='longitude'){
                if (value === "" || value === null){
                    return false;
                }
            }
        });
        return true;
    }
  

Проверьте пустое значение широты, долготы в данных, если какое-либо пустое значение в данных, то приведенная выше функция возвращает false, тогда вы сможете отобразить сообщение пользователю.

Что-то вроде этого

 if (!checkBlankValue){
    return "your message";
}