Criando uma árvore usando o json de uma lista / tabela

Digamos que eu tenha tabela / lista como essa n = 3 neste caso, mas n pode ser ilimitado.

groupid       answerid1     answerid2     answerid(n)
1              3            6             8 
1              3            6             9 
1              4            7               
2              5                            

e eu quero criar uma saída json pai / filho assim usando java. (Eu tenho usado o 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}
                        ]
                }

               ]      
        }

qual seria o código / etapas para fazer isso. Eu olhei através de muitas tags, mas principalmente as pessoas estão imprimindo a saída e não recursivamente construir um hashmap / ArrayList para GSON para analisar e escrever na API. um outro ponto em que cada id tem outros dados associados a ele que terão que ser incluídos na saída do json. por exemplo, em vez de {groupid: 1} precisaria disso {groupid: 1, text = toyota}.

qualquer ajuda é muito apreciada como eu sou bastante novo para java como eu venho de fundo SAS.

Eu recebo dados como este (apenas uma matriz de lista) Toyota, Gas, Compact, Corolla

Toyota, Gás, Compacto, CamryToyota, híbrido, compacto, PriusHonda, Gás, Compacto, Cívico

Se necessário, posso REFORMAR OS DADOS em duas tabelas

parentId parText answerId

1 Toyota 11 Toyota 21 Toyota 32 Honda 4

answerId level answerTextid answerText

1 1 1 Gas1 2 2 Compact1 3 3 Corola2 1 1 Gas2 2 2 Compact2 3 4 Camry…

Então eu preciso torná-lo uma árvore (saída aninhada como o JSON mostra com pai / filhos - assim como se você fosse creatign um diretório do sistema de arquivos)

um outro thign eu gostaria de fazer é para cada carro ter quilometragem como um varialbe ({answerid3: 4, text = Corolla, quilometragem = 38}. mas também se eu atravessar a árvore dar uma milha média para o ramo. na filial Toyota, Gas, Compacta a quilometragem seria avg (Camry, Corolla)

A saída é um pouco fora, eu estou procurando algo parecido com isto. se não houver filhos, então nenhum filho arraylist e attrbutes fazem parte de um objeto (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"}]}

questionAnswers(1)

yourAnswerToTheQuestion