2016-07-29 77 views
-2

我使用spring框架。如何寫一個java樹結構和串行器/解串器到Json

我想實現Java樹結構和Serializer/DeserializerJSON

像下面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"} 
     ]} 
    ]  

如何上面JSON樹轉換爲一個Java類和Serializer/Deserializer以JSON

+2

StackOverflow不是代碼寫入服務!向我們展示你到目前爲止已經嘗試過的一切,並提出具體問題! – ParkerHalo

回答

1

在這裏,您可以使用傑克遜庫與彈性框架工作,以JSON轉換成Java類反之亦然。 有關傑克遜see this更多信息

生成Java POJO類使用這個在線工具click here

希望它會幫助你。

+0

對不起,你能給我整個例子包含** TreeNode.class **和** Serializer/Deserializer ** –

0

對於這個問題,有一些新的有用的工具,比如搖頭丸。 http://swagger.io/你可以查看此鏈接。它是爲流行框架生成apis的好工具。所有你需要做的就是使用swagger編輯器工具通過指定你的框架(在你的情況下它的spring和java)來編寫yaml格式的接口。它會生成所有的apis和model對象。然後你可以使用Gson來序列化這些自動生成的接口。

0

如果要使用Jackson將Java對象轉換爲JSON或從JSON轉換,請通過此tutorial

就你的JSON而言,我認爲你需要的POJO應該看起來像這樣。

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 
} 

使用傑克遜,你可以反序列化JSONs如下(我假設它是在一個JSON文件):

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

我用傑克遜在上面的例子,因爲這是我大量使用。如果你願意,你可以使用GSON。

傑克遜Maven的依賴:

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

,如果你對這些主題閱讀了一下這是更好。