Создание дерева с использованием 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 4

answerId 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"}]}

Ответы на вопрос(1)

Ваш ответ на вопрос