我有两节课:
@JsonIgnoreProperties(values="foo", allowGetters = true)
public class Parent {
String foo;
String bar;
}
@JsonIgnoreProperties(values="alice", allowGetters = true)
public class Child extends Parent {
String alice;
String bob;
}
这将导致一个类Child
,其中属性foo
不会被忽略(用于设置)。因此,我假设JsonIgnoreProperties
中的Child
会覆盖JsonIgnoreProperties
中的Parent
。
但是我需要一种方法来合并JsonIgnoreProperties
的{{1}}和Child
的{{1}}。这该怎么做? TIA!
答案 0 :(得分:1)
由于您已经在Child类中重新定义了注释,因此它将覆盖Parent中定义的注释。
我知道有两种解决方法,但这两种方法都不是直接的。
@JsonIgnoreProperties
,而要使用@JsonIgnore
。这样可以确保您不会覆盖父级注释。@JsonIgnoreProperties
,请添加自定义JsonFilter并在运行时( Reflections )中手动处理注释解析,方法是查看是否存在任何层次结构父类具有JsonIgnoreProperties,然后跳过分配。 答案 1 :(得分:0)
我通过自定义BeanDeserializerModifier
解决了这个问题。
请参阅此处:Jackson Dynamic filtering of properties during deserialization