La création d'un arbre à l'aide de json à partir d'une liste/tableau

Disons que j'ai de table/liste comme n=3 dans ce cas, mais n peut être illimité.

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

et je veux créer un parent/enfant arbre de sortie json comme ceci en utilisant java.(J'ai été en utilisant 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}
                        ]
                }

               ]      
        }

quel serait le code/les étapes pour le faire. j'ai regardé à travers beaucoup de tags, mais surtout des gens de l'impression à la sortie et pas de manière récursive construire une table de hachage/liste de tableaux pour GSON pour analyser l'adn d'écrire à l'API. un autre point chaque id a d'autres données qui y sont associées, qui devront être inclus dans la sortie json. par exemple au lieu de {groupid:1} aurait besoin de cette {groupid:1, text=toyota}.

toute aide est grandement appréciée comme je suis assez nouveau à java, comme je viens de SAS fond.

Je obtenir les données comme ceci (juste une matrice de liste).
Toyota, Gaz, Compact, Corolle

  • Toyota, Gaz, Compact, Camry
  • Toyota, Hybride, Compact, Prius
  • Honda, De Gaz, Compact, Civique
  • Si besoin je peux REFORMATER LES DONNÉES dans deux tables

    parentId parText answerId

  • 1 Toyota 1
  • 1 Toyota 2
  • 1 Toyota 3
  • 2 Honda 4
  • answerId niveau answerTextid answerText
  • 1 1 1 Gaz
  • 1 2 2 Compact
  • 1 3 3 Corolle
  • 2 1 1 Gaz
  • 2 2 2 Compact
  • 2 3 4 Camry
  • ...Alors j'ai besoin de faire un arbre(nested de sortie comme le JSON montre avec les parents/enfants - tout comme si vous étiez creatign un répertoire système de fichier)

    un autre thign j'aimerais faire, c'est pour chaque voiture kilométrage comme une varialbe ({answerid3:4, texte=Corolle, kilométrage=38}. mais aussi si je traverse la hauteur de l'arbre donnent une moyenne de mille pour la branche. Comme, disons, à la direction de Toyota, le Gaz, le Compact le kilométrage serait avg(Camry, Corolla)

    la sortie est un peu hors, je suis à la recherche de quelque chose comme cela. si aucun enfant n'a alors pas d'enfants arraylist, et attrbutes font partie d'un objet (table de hachage)

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

OriginalL'auteur Bob Stein | 2012-05-18