我正在使用Jackson 2,并且在反序列化期间努力动态过滤属性。
我的想法是加载实体并只读取更改:
objectMapper.readerForUpdating(entity).readValue(json)
我试图使用@JsonView
,这适用于简单的情况。
我获得了EntityA的更新,读者只应接受EntityB的id,该ID用于通过EntityManager查找外部实体。
使用@JsonView
允许我处理它,但我需要为我的所有用例提供不同的视图类,例如:仅更新EntityB。
class Views {
public static class Update {
}
public static class Display extends Update {
}
}
class EntityA {
@JsonView(Views.Update)
EntityB b;
...
}
class EntityB {
@JsonView(Views.Update)
Integer id;
@JsonView(Views.???)
String value;
...
}
有没有办法在反序列化过程中动态过滤属性,例如@JsonFilter
?
我用BeanDeserializerModifier找到了一个旧的答案,但我希望有更好的方法。