递归遍历 json 所有数据
/**
* 递归遍历json所有数据
*
* @param jsons { jsonArray } json 数据
* @param name { string } 拼接前缀
* @param sign { string } 拼接方式
* @param callback { function } 回调方法
*/
function getAllJson (jsons, name, sign, callback) {
if (name === "" || name === undefined) {
name = "json"
}
for (let key in jsons) {
let k = name + sign + key;
if (!(jsons[key] instanceof Object)) {
if (typeof callback === "function") {
callback(k, key, jsons[key]);
}
} else {
this.getAllJson(jsons[key], k, sign, callback); //如果是Object则递归
}
}
}
- 初始化数据
let json = {"property_company_total":{"number":4,"name":"物业公司信息总数"},"property_company_property":{"name":"公司性质","number":2,"property_company_property_1":{"name":"国家行政企业","number":1},"property_company_property_2":{"name":"公私合作企业","number":0},"property_company_property_3":{"name":"中外合作企业","number":0},"property_company_property_4":{"name":"社会组织机构","number":1},"property_company_property_5":{"name":"国际组织机构","number":0},"property_company_property_6":{"name":"外资企业","number":0},"property_company_property_7":{"name":"私营企业","number":0},"property_company_property_8":{"name":"集体企业","number":0},"property_company_property_9":{"name":"国防军事企业","number":0},"property_company_property_10":{"name":"其他","number":0}}};
- 调用
getAllJson(json, "map", " > ", function (k, key, value) {
console.log(k, key, value);
});
- 输出