如何将java树结构和序列化器/反序列化器写入Json

如何将java树结构和序列化器/反序列化器写入Json,java,json,serialization,tree,Java,Json,Serialization,Tree,我使用spring框架 我想实现Java树结构和Serializer/Deserializer到JSON 像下面的JSON [ {"id":"1","pid":"0","name":"n1", "chindren":[ {"id":"4","pid":"1","name":"n4", "chindren":[ {"id":"7","pid":"4","name":"n7", "chindren":[

我使用spring框架

我想实现Java树结构和
Serializer/Deserializer
JSON

像下面的
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类,以及如何将序列化器/反序列化器转换为JSON。在这里,您可以将jackson libs与spring框架一起使用,将JSON转换为Java类,反之亦然。 更多关于杰克逊的信息

要生成java pojo类,请使用此在线工具


希望它能对您有所帮助。

对于这个问题,有一些新的有用工具,如swagger。您可以查看此链接。这是一个为流行框架生成API的好工具。您所需要做的就是使用swagger编辑器工具以yaml格式编写接口,通过指定您的框架(在您的例子中是spring和java),它将生成所有api和模型对象。然后,您可以使用Gson来序列化这些自动生成的接口。

如果您想使用Jackson将Java对象转换为JSON或从JSON转换为JSON,请仔细阅读

就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
}
公共类模型{
私有字符串id;
私有字符串pid;
私有字符串名称;
列名儿童;//我以为你指的是儿童
//Getter和Setter方法
}
使用Jackson,您可以按如下方式反序列化JSON(我假设它位于JSON文件中):

ObjectMapper ObjectMapper=new ObjectMapper();
List listModel=objectMapper.readValue(Main.class.getResourceAsStream(“/newjson.json”),new TypeReference(){
});
我在上面的例子中使用了Jackson,因为这是我广泛使用的。如果你想的话,你可以使用GSON

Jackson的Maven依赖性:

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

com.fasterxml.jackson.core
杰克逊数据绑定
2.6.3

如果您仔细阅读一下这些主题,会更好。

对不起,您能给我完整的示例,其中包含TreeNode.class和序列化器/反序列化器吗
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.6.3</version>
</dependency>