Сериализация и десериализация с Джексоном: как программно игнорировать поля?
Я использую Джексона для сериализации и десериализации объектов. Проблема в том, что иногда я хочу показать поле, а иногда нет.
На самом деле я использую @JsonIgnore, чтобы избежать печати свойства, когда оно мне не нужно. Когда мне это нужно, я отключаю свойство через
mapper.getSerializationConfig().disable(SerializationConfig.Feature.USE_ANNOTATIONS);
но это отключит и другие аннотации, которые мне нужны.
Как я могу получить результат, который мне нужен? Используя Представления? Любой пример?
Немного поно, чтобы понять, чего я хочу:
class User {
private String username;
@JsonIgnore
private String password;
// getter setter
}
writeToDB() {
mapper.getSerializationConfig().disable(SerializationConfig.Feature.USE_ANNOTATIONS);
mapper.writeValueAsString(user);
}
и через REST API вы можете получить имя пользователя без пароля (благодаря JsonIgnore)