是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();
}
答案 0 :(得分:3)
您收到错误的原因是因为data.objectList
是一个空数组[]
,因此尝试访问偏移零中的任何内容,例如data.objectList[0]
为undefined
,并且因此,您无法访问detailedInfo
的{{1}}。
为什么不简单地测试objectList是否存在以及它的长度是否大于零,就像这样;
undefined
上面应该这样做,除非你需要处理诸如objectList突然变成字符串而不是数组的极端情况 - 根据你的要求,你可以在{{1}的if语句中添加一个测试也处理这种情况。
答案 1 :(得分:1)
检查数据,因为data.objectList [0]没有设置detailedInfo属性。