有没有办法阻止杰克逊的字段反序列化? 但我需要序列化该字段 我尝试使用@jsonIgnoreProperties,这可以防止序列化和反序列化。
答案 0 :(得分:4)
"技巧"是将@JsonProperty和@JsonIgnore组合在setter和getter上,如下例所示
public class SerializeDemo{
@JsonIgnore
private String serializeOnly;
@JsonProperty("serializeOnly")
public String getSerializeOnly() {
return serializeOnly;
}
@JsonIgnore
public void setSerializeOnly(String serializeOnly) {
this.serializeOnly= serializeOnly;
}
}
答案 1 :(得分:1)
从Jackson 2.6开始,可以将属性标记为只读或只写。它比攻击两个访问器上的注释更简单,并将所有信息保存在一个地方:
public class NoDeserialization {
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private String prop;
public String getProp() {
return prop;
}
public void setProp(String prop) {
this.prop = prop;
}
}
答案 2 :(得分:0)
您可以在字段声明中使用@JsonIgnore
。
离。
@JsonIgnore
private Integer fieldToPrevent; // this will be avoided
private Integer regularField; // will serialize
查看here's对它的解释。