Javascript:如何测试响应JSON数组是否为空

Lur*_*k21 14 jquery json

我回来了以下JSON:

{"array":[],"object":null,"bool":false}
Run Code Online (Sandbox Code Playgroud)

我正在使用以下看似详尽的if语句对其进行测试:

$.ajax({
        type: "GET",
        url: "/ajax/rest/siteService/list",
        dataType: "json",
        success: function (response) {
            var siteArray = response.array;

            // Handle the case where the user may not belong to any groups
            if (siteArray === null || siteArray=== undefined || siteArray=== '' || siteArray.length === 0) {
                            window.alert('hi');
            }
       }
});
Run Code Online (Sandbox Code Playgroud)

但警报没有解雇.:[

Aru*_*hny 27

使用$ .isArray()检查对象是否为数组.然后你可以检查length属性的真实性,看它是否为空.

if( !$.isArray(siteArray) ||  !siteArray.length ) {
    //handler either not an array or empty array
}
Run Code Online (Sandbox Code Playgroud)

  • 这是对这个问题的不幸解决方案.为什么这有效但OP的代码没有? (2认同)

Phr*_*ogz 6

两个空数组彼此不同,因为它们不是同一个对象。

var a = [];
if (a === []){
  // This will never execute
}
Run Code Online (Sandbox Code Playgroud)

使用if (siteArray.length==0)看看如果数组是空的,或者更简单if (!siteArray.length)