2015-07-30 2 views
2

У меня есть класс POJOКак игнорировать поле во время сериализации, но не во время десериализации?

class Human{ 
    String name; 
    Integer age; 
    //get and set 
} 

Когда я десериализации JSON к Human объекту Я хочу, чтобы прочитать оба поля (age и name значения). Но когда я сериализую объект Human на json, я хочу игнорировать age.

Возможно ли это?

ответ

8

Javadoc из @JsonIgnore состояний

Кроме того, начиная с Джексоном 1.9, если это только аннотация связаны со свойством, оно также вызывает вызвать целое свойство быть проигнорировано: то есть , если у сеттера есть эта аннотация, а геттер не имеет аннотаций, то также эффективно игнорируется геттер. все еще возможно для разных аксессуаров использовать разные аннотации; , так что, если игнорировать только «getter», другим аксессуарам (сеттер или ) понадобится явная аннотация для предотвращения игнорирования (обычно JsonProperty).

Так просто аннотировать получения и установки соответственно

// for serialization 
@JsonIgnore 
public String getName() { 
    return name; 
} 
// for deserialization 
@JsonProperty("name") 
public void setName(String name) { 
    this.name = name; 
} 
Смежные вопросы