javascript/jquery如何判断json数据中某深层的key是否存在

我有一个json文件,比如命名为j,里面具体有什么key不知道,判断某key是否存在

我举个实际的例子
我想判断j.input.age 是否存在,当j完全为空的时候,我如果用 if (j.input.age) {alert("exist"} 来判断,就直接报错,说can not read 'age' property of undefined。 就是深层的key在判断的时候,如何这个深层的key的父元素或者更长辈的元素不存在的话,就报错,要如何判断呢

if( j && j.input && j.input.age ){
   alert( "exist" ) ;
}

 由于 null、NaN、0、undefined、空字符串 "" 都是可以被转换成 false 的,所以要实现确定 age 属性不是这些值,否则也会当做不存在。


补充,Object.hasOwnProperty 可以检测对象是否拥有自定义(不搜索原型)属性

if( j && j.input && j.input.hasOwnProperty( "age" ) ){
    alert( "exist" );
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-16
那你就一层一层的判断,先判断input是否存在,如果存在就在input里面查找age,不存在就自然跳出了,这样不行吗
第2个回答  2014-10-25
这种对象,一般用for(var i in obj) { console.log( obj.i ) } 来遍历,多层次可以用递归噢。
相似回答