如果我传递像
这样的JSON`{
"entity":{
"name":"xyz",
"age":21
}
}`
那么,我的POJO
是否应该同时拥有" name
"和" age
"实例变量。我的意思是,如果我只有"名称"实例字段,映射时会有异常吗?
答案 0 :(得分:1)
如果您的JSON包含POJO中不存在的额外字段,则会引发异常。为避免这种情况,您可以使用此注释@JsonIgnoreProperties忽略其他字段。 如果字段名称不同,则可以使用@jsonProperty在字段getter中定义。 (用于反序列化)。 对于序列化,在setter方法上使用注释。
@JsonIgnoreProperties(ignoreUnknown = true)
class Pojo {
private String name;
@jsonProperty("firstName")
public String getName(){
return this.name;
}
}
答案 1 :(得分:0)
我的POJO必须同时拥有" name"和"年龄"实例变量
如果你的意思是"有"正如同名一样,然后没有。您可以使用注释重命名值。
如果您改为表示类定义"包含"那些价值观,那么它也不应该需要它们。这取决于您如何配置ObjectMapper
。例如,an AnyGetter
annotation允许您收集"额外" JSON值。因此,不需要必填字段是有道理的。