如何查找JSON嵌套对象

时间:2019-04-09 20:41:01

标签: javascript lodash

我想找到key:value如果存在嵌套的地方。我的JSON看起来像这样

{
  "key1": {
    "key11": "foo11",
    "key12": "foo12",
    "key13": [
      "aaa",
      "bbb"
    ]
  },
  "key2": {
    "city": "New York",
    "state": "NY",
    "phone": [
      "20111",
      "20333"
    ]
  }
}

我需要找到第一个出现的地方,例如“电话”键并获取数据。如何使用例如而不是for / forEach。按键“ phone”可能存在或不存在,并且不在第一级主要对象中。所以我需要第一次出现

1 个答案:

答案 0 :(得分:0)

您可以使用递归来实现。

let obj = { "key1": { "key11": "foo11", "key12": "foo12", "key13": [ "aaa", "bbb" ] }, "key2": { "city": "New York", "state": "NY", "phone": [ "20111", "20333" ] } }


function nestedKey(obj,key){
  if(obj[key]) return obj[key]
  for(let k in obj){
    if(typeof obj[k] === "object"){
      let temp = nestedKey(obj[k],key);
      if(temp) return temp;
    }
  }
}

console.log(nestedKey(obj,"phone"))
console.log(nestedKey(obj,"phonee"))