检查null是否不适用于ajax json数据

时间:2018-10-24 08:18:42

标签: javascript jquery object variables null

我正在从ajax调用中获取数据

[{"_id":{"$oid":"5bd00e99d2ccda119c0032da"},"AllotmentsDetails":null}]

我正在将其与空值进行比较

var allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (allotmentDetailsArray.length == 0 || allotmentDetailsArray == null)
{
    ////
}

如果情况不妙,请帮助!

5 个答案:

答案 0 :(得分:3)

您必须先对null进行检查,然后才能尝试访问object,在您的if块中,您试图在.length对象上调用null

您可以这样做:

if (!allotmentDetailsArray || allotmentDetailsArray.length == 0)
{
    ////
}

!allotmentDetailsArrayallotmentDetailsArray == null的缩写表达式,它检查allotmentDetailsArrayundefined还是null

因此,这里仅在if不是allotmentDetailsArray时检查null块的第二部分。

答案 1 :(得分:1)

您必须先检查null,然后再检查长度

if (allotmentDetailsArray == null || allotmentDetailsArray.length == 0)
{
      ////
}

答案 2 :(得分:1)

您不能检查空值的长度。但是,您可以使用此代码检查空值和数组长度。

if (!allotmentDetailsArray) {
  // null check here. you cannot check array length here since it's a null value
} else {
  // if you want to check array length 
  if (allotmentDetailsArray.length === 0 ) {
    // check here
  }
}

答案 3 :(得分:1)

首先,您必须检查null或不为null。如果其不为null,则检查长度。

请尝试。

//Ex:1
var data= [{"_id":{"$oid":"5bd00e99d2ccda119c0032da"},"AllotmentsDetails":null}];

var allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (allotmentDetailsArray == null)
{
    alert(allotmentDetailsArray);
}
else if(allotmentDetailsArray.length == 0)
{
    alert(allotmentDetailsArray.length);
}
//or
if (allotmentDetailsArray == null ||allotmentDetailsArray.length == 0 )
{
alert(allotmentDetailsArray);
}

//Ex:2
var data= [{"_id":{"$oid":"5bd00e99d2ccda119c0032da"},"AllotmentsDetails":""}];

 allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (allotmentDetailsArray == null)
{
    alert(allotmentDetailsArray);
}
else if(allotmentDetailsArray.length == 0)
{
    alert(allotmentDetailsArray.length);
}

答案 4 :(得分:0)

您可以只检查类型:

var allotmentDetailsArray = data[0]['AllotmentsDetails'];

if (typeof allotmentDetailsArray !== "undefined")
{
  // Var is not null
}