【问题标题】:How to write a java tree Structure and Serializer/Deserializer to Json如何将 Java 树结构和序列化器/反序列化器写入 Json
【发布时间】:2016-07-29 09:06:42
【问题描述】:

我用的是spring框架。

我想实现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

【问题讨论】:

    标签: java json serialization tree


    【解决方案1】:

    在这里,您可以使用带有 spring 框架的 jackson 库将 json 转换为 java 类,反之亦然。 更多关于杰克逊的信息see this

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

    希望对你有所帮助。

    【讨论】:

    • 对不起,你能给我整个例子包含 TreeNode.classSerializer/Deserializer
    【解决方案2】:

    如果您想使用 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
    }
    

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

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

    我在上面的例子中使用了 Jackson,因为那是我广泛使用的。如果你愿意,你可以使用 GSON。

    Jackson 的 Maven 依赖项:

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

    最好先阅读一下这些主题。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2010-10-18
        • 1970-01-01
        • 2015-07-02
        • 1970-01-01
        • 2018-07-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多