Javascript:如果数组有对象或不为空

时间:2016-05-09 09:22:17

标签: javascript json

我有一些JSON数据,如下所示:

{
  "errorCode": null,
  "message": "Success",
  "result": {

  },
  "totalRecord": 0,
  "checkAccess": true,
  "token": "fb8904acf4dbf0406ac3fd16acd9b84807d2a0e2913aecc3f39e90ca4b53161af6058ca5ee46b9877b75292e5ca9b8df969a325fa3b40c0e4acde546a431f55f6c07de8a854b9e0bf6aeba314d239267"
}   

在JSON中,您可以发现"result"为空,但如何通过if语句识别它?我尝试使用!== "undedined"!==null,但法规仍然执行。

if(trend1_data[0].result !== 'undefined'){
    var resultone = trend1_data[0].result;
    var chartVal1 = resultone.mention30d.chartValues;
    for(var i=0; i < chartVal1.length; i++){
        vol1.push(chartVal1[i].value);//a for loop to generate value array
        Xvol1.push(chartVal1[i].date);// for xaris values e.g:date
    }
}

3 个答案:

答案 0 :(得分:2)

result是json数组中的一个对象

希望这会有用

var a = [{
"errorCode": null,
  "message": "Success",
  "result": {

  },
  "totalRecord": 0,
  "checkAccess": true,
  "token": "someValue"
} 
]

alert(Object.keys(a[0].result).length)

jsfiddle

答案 1 :(得分:0)

如果obj

var obj = {
  "errorCode": null,
  "message": "Success",
  "result": {

  },
  "totalRecord": 0,
  "checkAccess": true,
  "token": "fb8904acf4dbf0406ac3fd16acd9b84807d2a0e2913aecc3f39e90ca4b53161af6058ca5ee46b9877b75292e5ca9b8df969a325fa3b40c0e4acde546a431f55f6c07de8a854b9e0bf6aeba314d239267"
}   

试试这个

resultone = obj.result && ( Array.isArray( obj.result ) && obj.result.length ) || Object.keys(obj.result).length;

这将按以下顺序检查obj.result(如果您已经知道结果只能是对象而不是数组,则第二步是可选的)

1)如果obj.result存在

2)如果是,那么它是否是一个数组,如果它是一个数组,那么它是否有项目

3)如果它不是数组,那么它是否有任何键。

resultone现在将为true / false,现在您可以将其用作

if ( resultone )
{
}

答案 2 :(得分:-1)

您的resultone未定义,或者您应使用resultone < array.length

进行不同的检查

检查How do I check if a JavaScript array value is empty or null?