spoiler[
{
"SEQNR": 1,
"LEVEL": 1,
"OTYPE": "O",
"OBJID": 80100000,
"STEXT": "Предприятие",
"PDOWN": 2,
"VCOUNT": 6,
"PNEXT": 0,
"PUP": 0,
"PPREV": 0,
"PHONS": "",
"MOBNM": "",
"EMAIL": "",
"ADDRESS": ""
},
{
"SEQNR": 2,
"LEVEL": 2,
"OTYPE": "O",
"OBJID": 9999999,
"STEXT": "управление",
"PDOWN": 8,
"VCOUNT": 53,
"PNEXT": 3,
"PUP": 1,
"PPREV": 0,
"PHONS": "",
"MOBNM": "",
"EMAIL": "",
"ADDRESS": ""
},
{
"SEQNR": 8,
"LEVEL": 3,
"OTYPE": "O",
"OBJID": 5555555555,
"STEXT": "Текст",
"PDOWN": 116,
"VCOUNT": 34,
"PNEXT": 9,
"PUP": 2,
"PPREV": 0,
"PHONS": "",
"MOBNM": "",
"EMAIL": "",
"ADDRESS": ""
},
{
"SEQNR": 116,
"LEVEL": 4,
"OTYPE": "S",
"OBJID": 80315918,
"STEXT": "Программист",
"PDOWN": 1077,
"VCOUNT": 1,
"PNEXT": 117,
"PUP": 8,
"PPREV": 0,
"PHONS": "9379992",
"MOBNM": "",
"EMAIL": "",
"ADDRESS": "Адрес"
},
{
"SEQNR": 1077,
"LEVEL": 5,
"OTYPE": "P",
"OBJID": "11111111",
"STEXT": "вася пупкин",
"PDOWN": 0,
"VCOUNT": 0,
"PNEXT": 0,
"PUP": 116,
"PPREV": 0,
"PHONS": "",
"MOBNM": "",
"EMAIL": "mail@mail",
"ADDRESS": ""
} ]
Есть json, его нужно сделать древовидным, есть признаки по которым определяется сколько в ветке зависимостей.
function list_to_tree(list) {
var map = {}, node, roots = [], i;
for (i = 0; i < list.length; i += 1) {
map[list[i].OBJID] = i; // initialize the map
list[i].PNEXT = []; // initialize the children
}
for (i = 0; i < list.length; i += 1) {
node = list[i];
if (node.PUPId !== "0") {
// if you have dangling branches check that map[node.parentId] exists
list[map[node.PUPId]].PNEXT.push(node);
} else {
roots.push(node);
}
}
return roots;
}
пытался сделать так но не получается, помогите подскажите где не прав. спасибо за любые подсазки