如何检查json Data中的值是否为null

时间:2015-09-09 04:02:05

标签: jquery json

下面的

是json数据。我想做的是,我想检查数据是否为空,然后将显示No Records文本。以下是我的代码。但是,我总是得到Uncaught TypeError:无法读取属性&detailed; infoInfo'第.detailedInfo[0]!=null行未定义的内容我该如何解决?

 {
        "status": "0",
        "message": "",
        "objectList": [{
            "customerID": "A112",
            "dateReg": "31/08/2015",
            "detailedInfo": [{
                "purchDate": "01/08/2015",
                "prodCode": null,
                "price": null,
                "catefory": "BF"
            }],
            "subTotal": 23.00
        }],
        "objectList2": null
    }

if(data.objectList[0].detailedInfo[0]!=null){
    for(var i=0;i<data.objectList[0].detailedInfo.length;i++){
           var purchaseDt = data.objectList[0].detailedInfo[i].purchDate;
           var productCd = data.objectList[0].detailedInfo[i].prodCode;
           var category = data.objectList[0].detailedInfo[i].myrEquiv;

           $('#Date').append(purchaseDt);
           $('#Code').append(productCd);
           $('#Category').append(category);
    }
}
else{
     $('#noDataMsg').text("There is no record found");
     $('#noDataMsg').show();
}

2 个答案:

答案 0 :(得分:3)

您收到错误的原因是因为data.objectList是一个空数组[],因此尝试访问偏移零中的任何内容,例如data.objectList[0]undefined,并且因此,您无法访问detailedInfo的{​​{1}}。

为什么不简单地测试objectList是否存在以及它的长度是否大于零,就像这样;

undefined

上面应该这样做,除非你需要处理诸如objectList突然变成字符串而不是数组的极端情况 - 根据你的要求,你可以在{{1}的if语句中添加一个测试也处理这种情况。

答案 1 :(得分:1)

检查数据,因为data.objectList [0]没有设置detailedInfo属性。