Как получить сообщение об отсутствии данных, если json пуст

0

Я использую json-синтаксический анализ с использованием jquery. Я хочу поднять сообщение, если в массиве json нет данных. Поэтому я использовал код ниже и получил условие true, но в html div не было добавлено никакого сообщения.

мой код:

$( "#refresh" ).click(function() {
    $.getJSON("http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification", function(obj){
        if(json.length==0){
             $('<p>no updates found</p>').appendTo('#rr');
        }
    });
});

Кто-нибудь может меня исправить.

  • 3
    if(obj.length==0){ ...
  • 0
    тоже пробовал, но ничего не получалось ...
Показать ещё 2 комментария
Теги:
getjson

4 ответа

0
Лучший ответ

Что вы сомневаетесь? Просто проверьте, какой запрос закончен, а json пуст или запрос не выполнен (используйте шаблон обещания):

var url = "http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification";
$( "#refresh" ).click(function() {
     $.getJSON(url).done(function (json) {
          if(!json || json.length === 0){
              $('<p>no updates found</p>').appendTo('#rr');
           }
     }).fail(function () {
         $('<p>no updates found</p>').appendTo('#rr');
     });
});
3

У вас небольшая ошибка:

Вы должны проверить, является if(obj.length==0)

И не так, как ты.

Зачем?

потому что это аргумент вашего обратного вызова, который объявляется как:

function(obj){...}

уведомление:

Я, конечно же, надеюсь, что у вас есть cors enable на сервере, потому что вы запускаете свой код:

* XMLHttpRequest не может загрузить http://ec2-72-44-51-113.compute-1.amazonaws.com:8001/get_latest_verification. Происхождение http://run.jsbin.com не разрешено Access-Control-Allow-Origin. *

И я не вижу, чтобы какой-либо разрешить заголовок -domain в ответе:

Accept:application/json, text/javascript, */*; q=0.01
Cache-Control:no-cache
Origin:http://run.jsbin.com
Pragma:no-cache
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36
  • 0
    jsfiddle.net/Pdqat/1 , вот ссылка на jsfiddle , вы можете исправить меня.
  • 0
    @ PK10 Мой друг, против этого i.stack.imgur.com/Xq0n7.jpg - мы ничего не можем сделать. (попросите их jsonp API)
0

Вы можете попробовать это тоже,

if($.isEmptyObject(obj)) { //do you work here }

Документация: isEmptyObject

0

Можешь попробовать

$.isEmptyObject(obj) 

вместо json.length == 0

Это будет работать как для пустых массивов, так и для пустых объектов

См. Страницу документации здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню