我有一个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: [{..},{..}]
}
您可以使用Json To Java类。
// 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;
}
要在jsonc代码中使name
和age
处于顶级,您可能需要尝试将属性置于Payload类的顶级:
class Payload{
String name;
int age;
Children x[];
}
如果这有帮助,请告诉我。