【发布时间】:2015-01-29 03:00:02
【问题描述】:
有什么方法可以防止杰克逊中的字段反序列化? 但我需要序列化该字段 我尝试使用@jsonIgnoreProperties 这可以防止序列化和反序列化。
【问题讨论】:
标签: java spring serialization jackson
有什么方法可以防止杰克逊中的字段反序列化? 但我需要序列化该字段 我尝试使用@jsonIgnoreProperties 这可以防止序列化和反序列化。
【问题讨论】:
标签: java spring serialization jackson
从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;
}
}
【讨论】:
“诀窍”是在 setter 和 getter 上结合 @JsonProperty 和 @JsonIgnore,如下例所示
public class SerializeDemo{
@JsonIgnore
private String serializeOnly;
@JsonProperty("serializeOnly")
public String getSerializeOnly() {
return serializeOnly;
}
@JsonIgnore
public void setSerializeOnly(String serializeOnly) {
this.serializeOnly= serializeOnly;
}
}
【讨论】:
@JsonProperty(access = JsonProperty.Access.READ_ONLY) 应该可以,见 Frank Pavageau's answer
您可以使用@JsonIgnore om 字段声明。
例如。
@JsonIgnore
private Integer fieldToPrevent; // this will be avoided
private Integer regularField; // will serialize
看here's的解释。
【讨论】: