如果我通过一个JSON像杰克逊JSON到Java对象的映射
`{
"entity":{
"name":"xyz",
"age":21
}
}`
话,岂不是强制性的,我POJO
应该有两个“name
”和“age
”实例变量。我的意思是,如果我只有“名称”实例字段,映射时是否会有任何异常?
如果我通过一个JSON像杰克逊JSON到Java对象的映射
`{
"entity":{
"name":"xyz",
"age":21
}
}`
话,岂不是强制性的,我POJO
应该有两个“name
”和“age
”实例变量。我的意思是,如果我只有“名称”实例字段,映射时是否会有任何异常?
是强制性的,我的POJO应该有两个“名”和“年龄”的实例变量
如果你的意思是“有”在同一名称完全相同,则没有。您可以使用注释来重命名值。
如果您的意思是类定义“包含”这些值,那么它也不应该需要它们。这取决于你如何配置ObjectMapper
,但。例如,有an AnyGetter
annotation可以让你收集“额外的”JSON值。因此,强制字段不是必需的。
如果您的JSON包含POJO中不存在的额外字段,它将引发异常。为了避免这种情况,您可以使用此批注@JsonIgnoreProperties忽略其他字段。 如果字段名称不同,则可以使用@jsonProperty在字段getter中进行定义。 (用于反序列化)。用于序列化的 在setter方法上使用注释。
@JsonIgnoreProperties(ignoreUnknown = true)
class Pojo {
private String name;
@jsonProperty("firstName")
public String getName(){
return this.name;
}
}
你尝试过吗? – Jerry06
你有什么尝试做得很好? –