我有一个POJO类
class Human{
String name;
Integer age;
//get and set
}
当我将JSON反序列化为
Human
对象时,我希望能同时读取 age
和 name
值。但是当我将 Human
对象序列化为JSON时,我希望忽略 age
。这种情况是否可能?我有一个POJO类
class Human{
String name;
Integer age;
//get and set
}
Human
对象时,我希望能同时读取 age
和 name
值。但是当我将 Human
对象序列化为JSON时,我希望忽略 age
。这种情况是否可能?@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;
}