如何使用jquery检查JSON返回是否为空

Bac*_*ice 33 javascript ajax jquery json

$.getJSON(url, function(json) {
  var output = '';
  $.each(json, function(i,d) {

    if(d.DESCRIPTION == 'null'){ 
      console.log("Its empty");
    }
    var description = d.DESCRIPTION;
    output += '<tr><td>'+d.NAME+'</td><td>'+'<tr><td>'+d.DESCRIPTION+'</td><td>';
  });
});
Run Code Online (Sandbox Code Playgroud)

我试过添加

if(d.DESCRIPTION == 'null'){ console.log("Its empty"); 
Run Code Online (Sandbox Code Playgroud)

检查返回的对象是否为空,但不起作用.

有人可以向我解释这有什么问题吗?

Aru*_*ngh 67

下面的代码(jQuery.isEmptyObject(anyObject)函数已经提供)工作完全正常,无需编写自己的一个.

   // works for any Object Including JSON(key value pair) or Array.
  //  var arr = [];
  //  var jsonObj = {};
    if (jQuery.isEmptyObject(anyObjectIncludingJSON))
    {
       console.log("Empty Object");
    }
Run Code Online (Sandbox Code Playgroud)


use*_*654 56

只测试数组是否为空.

$.getJSON(url,function(json){
    if ( json.length == 0 ) {
        console.log("NO DATA!")
    }
});
Run Code Online (Sandbox Code Playgroud)

  • JSON对象没有"长度"属性,如果你得到的响应不是一个Array实例,你最终会得到"NO DATA!" 即使对象不是空的,也一直都是消息.这个答案最终如何获得批准,并获得了比Arun Pratap Singh先生的正确答案更多的声誉,这对我来说是个谜. (8认同)
  • @amit_kumar是的. (3认同)

Jus*_*ene 7

if (!json[0]) alert("JSON empty");
Run Code Online (Sandbox Code Playgroud)

  • 嗨Justin,最好提供一些解释和你的代码,而不是提问者将理解为什么特定的代码工作. (6认同)