Jackson object mapper how to ignore JsonProperty annotation?

You can configure the ObjectMapper to ignore annotations like @JsonProperty by doing:

ObjectMapper objectMapper = new ObjectMapper().configure(
             org.codehaus.jackson.map.DeserializationConfig.Feature.USE_ANNOTATIONS, false)
                .configure(org.codehaus.jackson.map.SerializationConfig.Feature.USE_ANNOTATIONS, false)

But this will cause it to also ignore things like @JsonIgnore etc. I'm not aware of any way to make the ObjectMapper ignore only specific annotations.


To ignore all annotations the syntax in Jackson version 2.x is:

objectMapper.configure(MapperFeature.USE_ANNOTATIONS, false)

Just ignoring a subset seems to be not possible with this approach.

But a much better solution can be found in this answer: https://stackoverflow.com/a/55064740/3351474

For your needs it should be then:

public static class IgnoreJacksonPropertyName extends JacksonAnnotationIntrospector {
  @Override
  protected <A extends Annotation> A _findAnnotation(Annotated annotated, Class<A> annoClass) {
    if (annoClass == JsonProperty.class) {
      return null;
    }
    return super._findAnnotation(annotated, annoClass);
  }
}

...

mapper.setAnnotationIntrospector(new IgnoreJacksonPropertyName());

Tags:

Java

Jackson