public static class DisablingJsonIgnoreIntrospector extends JacksonAnnotationIntrospector {
@Override
public boolean hasIgnoreMarker(final AnnotatedMember m) {
return false;
}
}
final ObjectMapper mapper = new ObjectMapper();
mapper.disable(MapperFeature.USE_ANNOTATIONS);
mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
2条答案
按热度按时间ugmeyewa1#
可以配置
ObjectMapper
来禁用JsonIgnore函数。以下是一些可以尝试的解决方案:1.为特定注解字段禁用JsonIgnore函数。
您可以创建一个自定义JsonIgnore注解和一个自定义
JacksonAnnotationIntrospector
,以便从Map器上下文中删除注解。将
@MyJsonIgnore
注解为序列化时应忽略的字段:@MyJsonIgnore
是一个简单自定义注解,它包含@JsonIgnore
:实现自定义
JacksonAnnotationIntrospector
以从Map器上下文中删除@MyJsonIgnore
:之后,您可以在配置过程中设置
ObjectMapper
上的自检器:结果是可以正确封送使用
@MyJsonIgnore
注解的字段。2.禁用Map器的JsonIgnore函数
您可以创建一个自定义
JacksonAnnotationIntrospector
并覆盖hasIgnoreMarker
方法以始终返回false
:hasIgnoreMarker
是检查是否有注解忽略json属性,返回false
将禁用JsonIngore函数。3.禁用所有注解并指定为给定
ObjectMapper
自动检测哪些类型的属性:这只是禁用所有注解。
希望这能有所帮助。
jqjz2hbq2#
如果你想在pojo中避免包含@JsonIgnore在内的所有Jackson注解,还有一个选择是使用AnnotationIntrospector.nopInstance()。
或