如何在序列化期间忽略字段,而不是在反序列化期间忽略?

时间:2015-07-30 15:27:49

标签: java json serialization jackson deserialization

我有一个POJO课程

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

当我将json反序列化为Human对象时,我想要读取两个字段(agename值)。但是当我将Human对象序列化为json时,我想忽略age

这可能吗?

1 个答案:

答案 0 :(得分:8)

@JsonIgnore州的javadoc

  

此外,从Jackson 1.9开始,如果这是唯一的注释   与财产相关联,也会导致整体   要忽略的属性:即,如果setter具有此注释并且   getter没有注释,getter也被有效忽略。 是的   仍然可以让不同的访问者使用不同的注释;   所以如果只是" getter"是被忽略的,其他的访问者(setter或者   字段)需要明确的注释来防止忽视(通常   JsonProperty)。

所以只需适当注释getter和setter

// for serialization
@JsonIgnore 
public String getName() {
    return name;
}
// for deserialization
@JsonProperty("name")
public void setName(String name) {
    this.name = name;
}