gpt4 book ai didi

java - 如何从json创建java对象

转载 作者:行者123 更新时间:2023-12-02 06:38:31 24 4
gpt4 key购买 nike

如何使用 java 对象和 Jackson 递归创建此 json 内容? :

{
"children": [
{
"children": [
{
"name": "cluster",
"children": [
{
"name": "AgglomerativeCluster",
"size": 3938
},
{
"name": "TestCLuster",
"size": 3938
}
]
}
],
"name": "analytics"
}
],
"name": "flare"
}

这是到目前为止我的对象结构,一个名为 DendogramVO 的父类和一个名为 Children 的子类,它也有一个子列表:

import java.util.List;

public class DendogramVO {
private List<Children> children;
private String name;

public List<Children> getChildren() {
return this.children;
}

public void setChildren(List<Children> children) {
this.children = children;
}

public String getName() {
return this.name;
}

public void setName(String name) {
this.name = name;
}
}

import java.util.List;

public class Children {

private List<Children> children;
private String name;

public List<Children> getChildren() {
return children;
}

public void setChildren(List<Children> children) {
this.children = children;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

}

最佳答案

请注意,您的 JSON 包含未知属性。您需要将 ObjectMapper 配置为在遇到它们时不会失败(或将它们添加到您的类中)

String s="{ \"children\": [ { \"children\": [ { \"name\": \"cluster\", \"children\": [ { \"name\": \"AgglomerativeCluster\", \"size\": 3938 }, { \"name\": \"TestCLuster\", \"size\": 3938 } ] } ], \"name\": \"analytics\" } ], \"name\": \"flare\"}";
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Children children = mapper.readValue(s, Children.class);

System.out.println(children.getChildren());

使用简单的 Children#toString() 打印

[[children = [[children = [[children = null, name = AgglomerativeCluster], [children = null, name = TestCLuster]], name = cluster]], name = analytics]]

关于java - 如何从json创建java对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390355/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com