如何在序列化时忽略一个字段但在反序列化时不忽略?

3

我有一个POJO类

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

当我将JSON反序列化为 Human 对象时,我希望能同时读取 age name 值。但是当我将 Human 对象序列化为JSON时,我希望忽略 age 。这种情况是否可能?
1个回答

10

@JsonIgnore 的 javadoc 表示:

此外,自 Jackson 1.9 开始,如果这是属性关联的唯一注解,则还将导致整个属性被忽略:也就是说,如果 setter 具有此注解而 getter 没有注解,则 getter 也会被忽略。 不过,仍然可以让不同的访问器使用不同的注解;因此,如果只想忽略“getter”,其他访问器(setter 或 field)需要显式注解以防止被忽略(通常是 JsonProperty)。

所以只需适当地对 getter 和 setter 进行注释即可。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接