3

我正在使用 Jackson 2,并在反序列化过程中对属性进行动态过滤。

我的想法是加载一个实体并阅读更改:

objectMapper.readerForUpdating(entity).readValue(json)

我试图使用@JsonView,它适用于简单的情况。

我得到了 EntityA 的更新,读者应该只接受 EntityB 的 id,它用于通过 EntityManager 查找外部实体。

Using@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的旧答案,但我希望有更好的方法。

4

0 回答 0