Mam bazę danych połączeń rodzic-dziecko. Dane wyglądają następująco, ale mogą być prezentowane w dowolny sposób (słowniki, lista list, JSON itp.).Rekursywnie buduj hierarchiczne drzewo JSON?
links=(("Tom","Dick"),("Dick","Harry"),("Tom","Larry"),("Bob","Leroy"),("Bob","Earl"))
Dane wyjściowe, których potrzebuję, to hierarchiczne drzewo JSON, które zostanie zrenderowane przy pomocy d3. W danych są dyskretne pod-drzewa, które podłączę do węzła głównego. Muszę rekurencyjnie przejść przez linki i zbudować strukturę drzewa. Najdalej mogę dostać, to powtarzać przez wszystkich ludzi i dołączać ich dzieci, ale nie mogę wymyślić, aby wykonać linki wyższego rzędu (np. Jak dołączyć osobę z dziećmi do dziecka kogoś innego). Jest to podobne do innego pytania: here, ale nie mam możliwości wcześniejszego poznania węzłów głównych, więc nie mogę zaimplementować zaakceptowanego rozwiązania.
Przejdę do poniższej struktury drzewa z moich przykładowych danych.
{
"name":"Root",
"children":[
{
"name":"Tom",
"children":[
{
"name":"Dick",
"children":[
{"name":"Harry"}
]
},
{
"name":"Larry"}
]
},
{
"name":"Bob",
"children":[
{
"name":"Leroy"
},
{
"name":"Earl"
}
]
}
]
}
Ta struktura renderuje się tak w moim układzie D3.
Tam nie ma wątpliwości. Czy próbowałeś jeszcze czegoś? Może powinieneś? – netcoder