2016-07-29 35 views
-2

Ich benutze Federrahmen.Wie schreibe ich eine Java-Struktur und Serializer/Deserializer zu JSON

Ich möchte Java-Baumstruktur und zu JSON implementieren.

wie unten JSON,

[ 
     {"id":"1","pid":"0","name":"n1", "chindren":[ 
      {"id":"4","pid":"1","name":"n4", "chindren":[ 
       {"id":"7","pid":"4","name":"n7", "chindren":[ 
        {"id":"15","pid":"7","name":"n15"} 

       ]}, 
       {"id":"8","pid":"4","name":"n8"}, 
       {"id":"9","pid":"4","name":"n9"}, 
       {"id":"10","pid":"4","name":"n10"} 
      ]}, 
      {"id":"5","pid":"1","name":"n5","chindren":[ 
       {"id":"19","pid":"5","name":"n19"}, 
       {"id":"20","pid":"5","name":"n20"} 
      ]} 
     ]}, 
     {"id":"2","pid":"0","name":"n2","chindren":[ 
      {"id":"13","pid":"2","name":"n13"} 

     ]}, 
     {"id":"3","pid":"0","name":"n3","chindren":[ 
      {"id":"11","pid":"3","name":"n11"}, 
      {"id":"12","pid":"3","name":"n12"} 
     ]} 
    ]  

Wie oben JSON Baum auf einer Java-Klasse und Serializer/Deserializer zu JSON

+2

StackOverflow ist kein Code-Schreibdienst! Zeigen Sie uns, was Sie bisher versucht haben und stellen Sie eine spezielle Frage! – ParkerHalo

Antwort

1

Hier konvertieren können Sie jackson Libs mit Federrahmen Arbeit verwenden json auf Java-Klassen zu konvertieren und umgekehrt. Weitere Informationen zu Jackson see this

Java pojo Klassen verwenden, um dieses Online-Tool click here

es hoffen, wird Ihnen helfen, zu generieren.

+0

Entschuldigung, können Sie mir das ganze Beispiel enthält die ** TreeNode.class ** und ** Serializer/Deserializer ** –

0

Es gibt neue nützliche Tools wie Swagger für dieses Problem. http://swagger.io/ können Sie diesen Link überprüfen. Es ist ein nettes Werkzeug um Apis für beliebte Frameworks zu generieren. Alles, was Sie tun müssen, ist das Schreiben der Schnittstellen in YAML-Format Ende mit dem Swagger-Editor-Tool durch Angabe Ihrer Frameworks (in Ihrem Fall seine Feder und Java) Es wird alle Apis und Modell-Objekte generieren. Dann können Sie Gson zum Serialisieren dieser automatisch generierten Schnittstellen verwenden.

0

Gehen Sie durch diese tutorial, wenn Sie Jackson für die Konvertierung von Java-Objekten zu/von JSON verwenden möchten.

Soweit Ihr JSON betrifft, denke ich, dass der POJO, den Sie brauchen, in etwa so aussehen sollte.

public class Model { 

    private String id; 
    private String pid; 
    private String name; 
    private List<Model> children; // I assumed you meant children 

    // Getter and Setter methods 
} 

Jackson verwenden, können Sie JSONs deserialisieren wie folgt (ich nehme an, es in eine JSON-Datei ist):

ObjectMapper objectMapper = new ObjectMapper(); 
List<Model> listModel = objectMapper.readValue(Main.class.getResourceAsStream("/newjson.json"), new TypeReference<List<Model>>() { 
}); 

I verwendet Jackson in dem obigen Beispiel, weil das ist, was ich ausführlich . Sie können GSON verwenden, wenn Sie möchten.

Maven Abhängigkeit für Jackson:

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.6.3</version> 
</dependency> 

Es ist besser, wenn man ein bisschen zu diesen Themen nachlesen.