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