关于json:javascript:检查数组有对象或不为空

Javascript: if an array has object or is no empty

本问题已经有最佳答案,请猛点这里访问。

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

1
2
3
4
5
6
7
8
9
10
{
 "errorCode": null,
 "message":"Success",
 "result": {

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

在JSON中,您可以发现"result"是空的,但是如何通过if语句来标识它呢?我试着用!=="undedined"!==null,但是这个语句仍然执行。

1
2
3
4
5
6
7
8
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
    }
}


result是json数组中的对象

希望这个有用

1
2
3
4
5
6
7
8
9
10
11
12
13
var a = [{
"errorCode": null,
 "message":"Success",
 "result": {

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

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

杰西德


如果obj

1
2
3
4
5
6
7
8
9
10
var obj = {
 "errorCode": null,
 "message":"Success",
 "result": {

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

试试这个

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

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

1)如果存在obj.result

2)如果是,那么它是否是一个数组,如果是一个数组,那么它是否包含项

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

结果一将是对/错,现在您可以使用它作为

1
2
3
if ( resultone )
{
}


您的resultone未定义,或者您应与resultone < array.length进行不同的检查。

检查如何检查javascript数组值是空的还是空的?