[英]Deserialize json using jackson to map fields to a wrapper class
我有一个看起来像这样的 JSON
{
Name: "Jhon",
Age: 28,
Children:[{..},{..}]
}
我创建了两个实体 Person 和 Children,以及一个包装 Payload
class Payload{
Person A;
Children x[];
}
我想做这样的事情
Payload payload = mapper.readValue(request, Payload.class);
字段未正确映射,因为名称和年龄字段位于根目录。 像下面这样的 JSON 可以在这种情况下工作,但我无法更改 JSON 也不能将名称和年龄字段放在 Payload 中。 我发现了 @JsonRootName 注释,但不确定它是如何工作的或是否会工作。
{
Person: { Name: "Jhon", Age:28},
Children: [{..},{..}]
}
要将name
和age
放在 jsonc-ode 的顶层,您可能需要尝试将属性放在 Payload class 的顶层:
class Payload{
String name;
int age;
Children x[];
}
请让我知道这是否有帮助。
您可以使用Json 到 Java Class 。
// import com.fasterxml.jackson.databind.ObjectMapper; // version 2.11.1
// import com.fasterxml.jackson.annotation.JsonProperty; // version 2.11.1
/* ObjectMapper om = new ObjectMapper();
Payload payload = om.readValue(myJsonString), Payload.class); */
public class Payload {
@JsonProperty("Name")
public String name;
@JsonProperty("Age")
public int age;
@JsonProperty("Children")
public List<Children> children;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.