如何将java树结构和序列化器/反序列化器写入Json
我使用spring框架 我想实现Java树结构和如何将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":[
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>