Javascript JSON嵌套子元素引用

Javascript JSON嵌套子元素引用,javascript,object,Javascript,Object,考虑到我不知道子元素有多深,如何使用javascript访问JSON格式的嵌套子对象 我试过: var body = json..simplyChild; 但对我不起作用 var json = { "root": { "firstChild": { "secondChild": { "simplyChild": "kek" } } } } 理想情况下,您只需正常获

考虑到我不知道子元素有多深,如何使用javascript访问JSON格式的嵌套子对象

我试过:

var body = json..simplyChild; 
但对我不起作用

var json = {
    "root": {
        "firstChild": {
            "secondChild": {
                "simplyChild": "kek"
            }
        }
    }
}

理想情况下,您只需正常获取元素。但这可以做你想做的

var json = 
{
    "root": {
        "firstChild": {
            "secondChild": {
                "simplyChild": "kek"
            }
        }
    }
}

function getNestedElement(obj, k){
    let keys = Object.keys(obj);
    for(let i = 0; i < keys.length; i++){
        let key = keys[i];
        if(key == k){
            return obj[key];
        }else{
            return getNestedElement(obj[key], k);
        }
    }
}
var json=
{
“根”:{
“第一个孩子”:{
“第二个孩子”:{
“simplyChild”:“kek”
}
}
}
}
函数getNestedElement(obj,k){
设keys=Object.keys(obj);
for(设i=0;i
使用递归函数,该函数根据值是否为对象来调用自身

以下是两个使用示例:

var json={
“根”:{
“第一个孩子”:{
“第二个孩子”:{
“simplyChild”:“kek”
},
“小”:“我很小”
}
}
}
功能查找(键,obj){
for(让k在obj中){
如果(k==键)返回obj[k]
如果(对象的类型[k]='object'){
设r=Find(key,obj[k])
if(r)返回r
}
}
}
log(Find('simplyChild',json))
log(Find('secondChild',json))
log(Find('little',json))

console.log(Find('unSetKey',json))
那不是->你是在问如何通过
函数在嵌套的
对象中找到特定
键的给定
?你会想使用一个递归函数,该函数将循环所有键。如果该值是一个对象,则调用该对象上的方法。如果它等于该键,则返回该键的值。如果OP想要
第二个子项
,怎么办?由于
条件的顺序,它不会与您的代码一起工作。如果
条件修复了它,它现在应该可以工作了