原始json数据
var json =
[
{"id":"5","name":"基本信息","nodeType":null,"pid":"0","title":null,"url":null},
{"id":"6","name":"商户信息","nodeType":null,"pid":"5","title":null,"url":null},
{"id":"2","name":"系统参数管理","nodeType":null,"pid":"1","title":null,"url":null},
{"id":"7","name":"用户信息","nodeType":null,"pid":"5","title":null,"url":null},
{"id":"3","name":"菜单管理","nodeType":null,"pid":"1","title":null,"url":null},
{"id":"1","name":"系统管理","nodeType":null,"pid":"0","title":null,"url":null},
{"id":"4","name":"操作员管理","nodeType":null,"pid":"1","title":null,"url":null},
{"id":"8","name":"服务类型","nodeType":null,"pid":"5","title":null,"url":null},
{"id":"10","name":"服务规则","nodeType":null,"pid":"5","title":null,"url":null},
{"id":"9","name":"角色管理","nodeType":null,"pid":"1","title":null,"url":null}
]
js转化方法
// 格式化数据,建立多叉树
function formatTreeData(treejson) {
var tmp = {}, parent;
for ( var n in treejson) {
var item = treejson[n];
if (item.id == item.pid) {
parent = item.id;
}
if (!tmp[Number(item.id)]) {
tmp[Number(item.id)] = {};
}
tmp[Number(item.id)].name = item.name;
tmp[Number(item.id)].id = Number(item.id);
if (!("children" in tmp[Number(item.id)]))
tmp[Number(item.id)].children = [];
if (item.id != item.pid) {
if (tmp[Number(item.pid)]) {
tmp[Number(item.pid)].children.push(tmp[Number(item.id)]);
delete tmp[Number(item.id)];
} else {
tmp[Number(item.pid)] = {
children : [ tmp[Number(item.id)] ]
};
}
}
}
// console.log(JSON.stringify(tmp['0'].children));
return tmp['0'].children;
}