Создание дерева с использованием json из списка / таблицы
Допустим, в этом случае у меня есть таблица / список n = 3, но n может быть неограниченным.
groupid answerid1 answerid2 answerid(n)
1 3 6 8
1 3 6 9
1 4 7
2 5
и я хочу создать вывод json для родительского / дочернего дерева, например, с помощью Java. (Я использовал 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}
]
}
]
}
какой будет код / шаги для этого. Я просмотрел множество тегов, но в основном люди печатают выходные данные, а не рекурсивно собирают hashmap / ArrayList для GSON, чтобы проанализировать adn write для API. В другой точке каждый идентификатор имеет другие данные, связанные с ним, которые должны быть включены в вывод json. например, вместо {groupid: 1} потребуется этот {groupid: 1, text = toyota}.
любая помощь очень ценится, так как я довольно новичок в Java, поскольку я из SAS.
Я получаю такие данные (просто матрицу списка) Toyota, Gas, Compact, Corolla
Toyota, Газ, Компакт, CamryToyota, Гибрид, Компакт, ПриусHonda, Газ, Компакт, CivicПри необходимости я могу РЕФОРМИРОВАТЬ ДАННЫЕ в две таблицы
parentId parText answerId
1 Тойота 1 1 Тойота 2 1 Тойота 3 2 Honda 4answerId level answerTextid answerText
1 1 1 Газ 1 2 2 Compact 1 3 3 Corolla 2 1 1 Газ 2 2 2 Compact 2 3 4 Camry…Затем мне нужно сделать это деревом (вложенный вывод, как показано в JSON с parent / children - точно так же, как если бы вы создавали каталог файловой системы)
Еще одно, что я хотел бы сделать, - это то, что для каждого автомобиля пробег варьируется ({answerid3: 4, text = Corolla, m miles = 38}. Но также, если я прохожу по дереву, получаю среднюю милю за ветку. скажем в филиале Тойота, Газ, Компакт, пробег будет средним (Camry, Corolla)
выход немного выключен, я ищу что-то вроде этого. если нет дочерних, то нет дочерних массивов, и атрибуты являются частью одного объекта (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"}]}