使用jQuery检查JSON中的空数组对象

时间:2014-07-19 07:50:47

标签: jquery json

我有一个像这样的空数组:

{"18":[]}

但是其他JSON是这样的:

{
    "223": [
        {
            "virtuemart_state_id": "1",
            "state_name": "Alabama"
        },
        {
            "virtuemart_state_id": "2",
            "state_name": "Alaska"
        }
    ]
}

我试图像这样检查:

jQuery("#paramsstates_chzn .search-field: input").click(function(){
            var country = jQuery("#country").val(),
            chzn,
            url = "http://localhost/data.php?id="+country;

            jQuery.getJSON(url, function(data){
             console.log(data);
             if (jQuery.isEmptyObject(data[country])) {
                 chzn = "<li class='active-result'>Empty</li>";
                 jQuery("ul.chzn-results").html(chzn);
                 return;
             }
            $.each(data[country], function(i, rep){
                chzn += "<li class='active-result' id ='paramsstates_chzn_o_"+ i + "' >"+ rep.state_name +"</li>";
            });

        jQuery("ul.chzn-results").html(chzn);
          });

      });

我在哪里犯了错误,因为它没有更新ul.chzn-results类区域。

HTML:

<ul class="chzn-results"></ul>

我也尝试这样做长度检查。但是没有工作。

(data[country].length === 0)

3 个答案:

答案 0 :(得分:1)

不需要jQuery,即纯JavaScript。

var o = {"18":[]};
var isEmpty = o["18"].length === 0;

答案 1 :(得分:0)

更改

if (jQuery.isEmptyObject(data[country])) {

if (data[country].length==0) {

答案 2 :(得分:0)

您可以使用use:(data[country]).length ==0来检查数组是否为空

jQuery("#paramsstates_chzn .search-field: input").click(function(){
                var country = jQuery("#country").val(),
                chzn,
                url = "http://localhost/joomla/data.json";

                jQuery.getJSON(url, function(data){
                 console.log(data);
                 if ((data[country]).length ==0) {
                     chzn = "<li class='active-result'>Empty</li>";
                     jQuery("ul.chzn-results").html(chzn);
                     return;
                 }
                $.each(data[country], function(i, rep){
                    chzn += "<li class='active-result' id ='paramsstates_chzn_o_"+ i + "' >"+ rep.state_name +"</li>";
                });

            jQuery("ul.chzn-results").html(chzn);
              });

          });