查找嵌套对象的键并返回其路径

时间:2017-05-30 16:42:30

标签: javascript json object path-finding

有没有人知道一个好的javascript npm包(或者有一些好的功能)来查找JSON密钥并返回其路径(或者如果密钥在嵌套的JSON中存在多次,则为路径)

for example:
var person={
"name":myName,
"address":{
"city",
"location":{
"long":123,
"lat":456
}
"long"

我想使用一个函数来返回此键的路径,在上面的示例中,键“long”存在两次:

console.log(getKeyPath(person,"long"); //address.long,long

2 个答案:

答案 0 :(得分:0)

使用obj-flatten可以使它成为一个扁平物体:

var person = {
  "name": "your name"
  "location.long": 123,
  "location.lat": 456,
  "long": 42,
  ...
}

然后你只需要按照那种模式进行查询:

var searchKey = "long";
var yourKeys = Object.keys(person).filter(function (c) {
   return c.split(".").indexOf(searchKey) !== -1;
});
// => ["location.long", "long"]

答案 1 :(得分:0)

如果您正在学习该语言,则始终建议使用本机JavaScript,但您可以使用lodash库。 https://lodash.com/docs/4.17.4#at

阅读一些方法,如_.at(),_。has()或_.findKey()