考虑到我不知道子元素有多深,如何使用javascript访问JSON格式的嵌套子对象?
我尝试过:
var body = json..simplyChild;
但不适用于我
var json = {
"root": {
"firstChild": {
"secondChild": {
"simplyChild": "kek"
}
}
}
}
答案 0 :(得分:1)
理想情况下,您只会正常获取该元素。但这应该可以做您想要的。
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);
}
}
}
答案 1 :(得分:0)
使用一个递归函数根据该值是否是对象来调用自身。
这是两个用法示例:
var json = {
"root": {
"firstChild": {
"secondChild": {
"simplyChild": "kek"
},
"little": "I am little"
}
}
}
function Find(key, obj) {
for (let k in obj) {
if (k == key) return obj[k]
if (typeof obj[k] == 'object') {
let r = Find(key, obj[k])
if (r) return r
}
}
}
console.log(Find('simplyChild', json))
console.log(Find('secondChild', json))
console.log(Find('little', json))
console.log(Find('unSetKey', json))