Jackson object mapper how to ignore JsonProperty annotation?

user991710 :

I have the following scenario:

public class A {

    @JsonProperty("member")
    private int Member;
}

public class B {

    private int Member;
}

Now, I wish to do the following:

ObjectMapper mapper = new ObjectMapper();
B b = new B(); b.setMember("1");

A a = mapper.converValue(b, A.class);

Ordinarily, this would work. However, since the objectMapper takes annotations such as @JsonProperty into account, I get the following result:

A.getMember(); // Member = NULL

There is a workaround, where all fields that are expected to be null due to this are set manually, i.e. A.setMember(b.getMember());, but this defeats the purpose of using the objectMapper in the first place and is potentially error-prone.

Is there a way to configure the objectMapper to ignore the @JsonProperty fields of a given class (or globally)?

Plog :

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.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=471494&siteId=1