Serializacja i deserializacja z Jacksonem: jak programowo ignorować pola?

Używam Jacksona do serializowania i deserializacji obiektów. Problem polega na tym, że czasami chcę pokazać pole, a czasami nie.

Właściwie używam @JsonIgnore, aby uniknąć drukowania właściwości, gdy jej nie potrzebuję. Kiedy tego potrzebuję, wyłączam tę właściwość

mapper.getSerializationConfig().disable(SerializationConfig.Feature.USE_ANNOTATIONS);

ale to wyłączy również inne adnotacje, których potrzebuję.

Jak mogę uzyskać wynik, którego potrzebuję? Używasz widoków? Jakiś przykład?

Trochę pojmy, aby zrozumieć, czego chcę:

class User {
private String username;
@JsonIgnore    
private String password;    
    // getter setter
}


writeToDB() {
mapper.getSerializationConfig().disable(SerializationConfig.Feature.USE_ANNOTATIONS);
mapper.writeValueAsString(user);
}

i za pośrednictwem interfejsu API REST możesz uzyskać nazwę użytkownika bez hasła (dzięki JsonIgnore)

questionAnswers(2)

yourAnswerToTheQuestion