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

时间:2016-07-29 09:06:42

标签: 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":[  
                    {"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

3 个答案:

答案 0 :(得分:1)

在这里你可以使用带有弹簧框架工作的jackson libs将json转换为java类,反之亦然。 有关jackson see this

的更多信息

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

希望它会对你有所帮助。

答案 1 :(得分:1)

如果您想使用Jackson将Java对象转换为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
}

使用Jackson,您可以按如下方式反序列化JSON(我假设它在JSON文件中):

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

我在上面的例子中使用了Jackson,因为这是我广泛使用的。如果需要,可以使用GSON。

杰文的Maven依赖:

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

如果您对这些主题有所了解,那就更好了。

答案 2 :(得分:0)

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