我正在将JSON转换为Java对象。我的Java对象类中的几个字段使用我定义的自定义序列化程序。例如:
@JsonProperty("table_name")
@JsonSerialize(using = MyCustomSerializer.class)
private String tableName;
我只想在某些情况下使用我的自定义序列化程序。是否可以在using =
批注中设置@JsonSerialize
?
我的ObjectMapper中具有以下JacksonAnnotationIntrospector:
private static final JacksonAnnotationIntrospector ignoreCustomSerializer = new JacksonAnnotationIntrospector() {
@Override
protected <A extends Annotation> A _findAnnotation(final Annotated annotated, final Class<A> annoClass) {
if (!annotated.hasAnnotation(JsonSerialize.class)) {
return super._findAnnotation(annotated, annoClass);
}
return null;
}
};
objectMapper.setAnnotationIntrospector(ignoreCustomSerializer);
此自省者使我的对象映射器忽略带有@JsonSerialize
批注的所有字段。我不想忽略该字段,只是我设置的自定义序列化程序。可以修改内省者以更改using =
批注中的@JsonSerialize
吗?