在反序列化期间过滤类似于JsonFilter的属性

时间:2016-07-26 06:35:05

标签: java json jackson deserialization jackson2

我正在使用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找到了一个旧的答案,但我希望有更好的方法。

0 个答案:

没有答案