2017-05-30 37 views
1

有誰知道一個良好的JavaScript NPM包(或有一些很好的功能)找到一個JSON鍵和返回其路徑(或路徑,如果密鑰存在於嵌套的JSON不止一次)查找鍵,返回其路徑

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

我想用將路徑返回到這個鍵的功能,在上面的例子中的關鍵「長」有兩次:

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

+0

遞歸查詢遍歷所有的對象和存儲的路徑,當你找到它,返回路徑......會發生什麼,如果有多個按鍵,將匹配嗎? – epascarello

+0

你正在尋找一個深度優先搜索。 – SLaks

回答

0

使用obj-flatten可以使塔T A扁平物體:

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"]