gpt4 book ai didi

java - Jackson 序列化忽略使用非 jackson 注释注释的字段

转载 作者:行者123 更新时间:2023-12-03 19:02:33 33 4
gpt4 key购买 nike

有没有办法告诉 jackson 在序列化过程中忽略那些用非 jackson 注释注释的字段?

例如:

@SomeAnnotation
private String foo;

我知道有 jackson 注释可以做到这一点,但是我的字段已经用我的持久性注释进行了注释,所以我想避免重复,因为我已经有了带有我想忽略的注释的字段

最佳答案

我鼓励您只使用 @JsonIgnore,否则您将隐藏那些特定方法和双重用途注释正在发生的事情。

但是...您可以通过扩展 JacksonAnnotationIntrospector 并重写 _isIgnorable(Annotated) 来完成此操作,如下所示:

publi class MyAnnotationIntrospector extends JacksonAnnotationIntrospector {
@Override
protected boolean _isIgnorable(Annotated a) {
boolean isIgnorable = super._isIgnorable(a);
if (!isIgnorable) {
SomeAnnotation ann = a.getAnnotation(SomeAnnotation.class);
isIgnorable = ann != null;
}
return isIgnorable;
}
}

然后在对象映射器上设置注解内省(introspection)器:

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setAnnotationIntrospector(new MyAnnotationIntrospector());

关于java - Jackson 序列化忽略使用非 jackson 注释注释的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29081902/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com