Tworzenie drzewa za pomocą json z listy / tabeli
Powiedzmy, że mam w tym przypadku tabelę / listę n = 3, ale n może być tak nieograniczona.
groupid answerid1 answerid2 answerid(n)
1 3 6 8
1 3 6 9
1 4 7
2 5
i chcę utworzyć wyjście json z drzewa nadrzędnego / podrzędnego w taki sposób, używając java. (Używam GSON)
{
data: [
{
groupid: 1,
children: [
{
answerid1: 1,
children: [
{
answerid2:3,
children: [
{
answerid3:6,
children: [
{answerid4: 8},
{answerid4: 9}
]
}
}, {
answerid2: 4,
children: [
{answerid3:7}
]
}
]
},
{
groupid1: 2,
children: [
{ answerid2: 5}
]
}
]
}
jaki byłby kod / kroki, aby to zrobić. przeglądałem wiele tagów, ale większość ludzi drukuje dane wyjściowe i nie rekursywnie buduje hashap / ArrayList dla GSON do analizowania i zapisu do API. jeszcze jeden punkt, w którym każdy identyfikator ma inne powiązane dane, które będą musiały zostać uwzględnione w danych wyjściowych json. na przykład zamiast {groupid: 1} będzie potrzebował tego {groupid: 1, text = toyota}.
każda pomoc jest bardzo mile widziana, ponieważ jestem dość nowy w Javie, ponieważ pochodzę z SAS.
Dostaję dane takie jak ta (tylko matryca listy) Toyota, Gas, Compact, Corolla
Toyota, Gas, Compact, CamryToyota, Hybrid, Compact, PriusHonda, Gas, Compact, CivicW razie potrzeby mogę zmienić dane w dwie tabele
parentId parText answerId
1 Toyota 11 Toyota 21 Toyota 32 Honda 4answerId level answerTextid answerText
1 1 1 Gaz1 2 2 Kompaktowy1 3 3 Corolla2 1 1 Gaz2 2 2 Kompaktowy2 3 4 Camry…Następnie muszę zrobić z niego drzewo (zagnieżdżone wyjście, jak pokazuje JSON z rodzicem / dziećmi - tak jak gdybyś tworzył katalog systemu plików)
jeszcze jeden znak, który chciałbym zrobić dla każdego samochodu ma przebieg jako varialbe ({answerid3: 4, tekst = Corolla, przebieg = 38}. Ale także, gdy przemierzam drzewo, podaj średnią długość gałęzi. w oddziale Toyota, Gas, Compact przebieg byłby średni (Camry, Corolla)
wyjście jest trochę wyłączone, szukam czegoś takiego. jeśli nie ma dzieci, nie ma dzieci arraylist i attrbuty są częścią jednego obiektu (hashmap)
{"data":[{"id":1,"children":
[{"id": 2,"children":
[{"id": 3 ,"children":
[{"id": 4,"name":"Prius"}],"name":"Compact"}],"name":"Hybrid"},
{"id":5,"children":
[{"id":3,"children":
[{"id":7,"MPG":38, "name":"Corolla"},
{"id":8,"MPG":28,"name":"Camry"}],"name":"Compact"}],"name":"Gas"}],"name":"Toyota"},
{"id":9, "children":
[{"id":10,"children":
[{"id":3 ,"children":
[{"id":11 ,"name":"Civic"}],"name":"Compact"}],"name":"Gas"}],"name":"Honda"}]}