Json에서 키 검색
1431 단어 프런트엔드
// json key ( key , json, window , )
var JsonSearch= function (str, SearhJson, Defaultpath, JsonList) {
var rearr = new Array();
if (!SearhJson) SearhJson = window
if (!Defaultpath) Defaultpath = "$";
if (!JsonList) JsonList = new Array();
JsonList.push(SearhJson);
for (var key in SearhJson) {
var keyName = Defaultpath + "." + key;
if (key.indexOf(str) > -1) rearr.push(keyName)
var knarr = keyName.split(".")
//
if (JsonList.find(p=> p == SearhJson[key]) != null) continue
//
var jtype = (Object.prototype.toString.call(SearhJson[key])).toLowerCase().split(" ")[1].replace("]", "")
if (jtype == "object" || jtype == "array") {
JsonSearch(str, SearhJson[key], keyName, JsonList.map(p=>p)).forEach(p=> {
rearr.push(p)
});
}
}
return rearr;
}
var ks = {
ak: {
kj: {
cad:55
}
}
}
ks.ss = ks.ak.kj;
console.log(JsonEditor.JsonSearch("cad",ks))// ["$.ak.kj.cad", "$.ss.cad"]