我有一个带有密码字段的实体类:
class User {
private String password;
//setter, getter..
}
我希望在序列化过程中跳过此字段。但它仍然应该能够反序列化。这是必需的,以便客户端可以向我发送新密码,但不能读取当前密码。
我该如何和Jackson一起完成这个任务呢?
发布于 2012-02-02 13:51:12
您可以将其标记为@JsonIgnore
。
在1.9版本中,您可以为getter添加@JsonIgnore
,为setter添加@JsonProperty
,以使其反序列化但不序列化。
发布于 2012-10-03 04:09:51
为了说明StaxMan所说的,这对我是有效的
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
@JsonProperty
public void setPassword(String password) {
this.password = password;
}
发布于 2013-02-21 15:48:03
最简单的方法是注释getter和setter。
以下是修改后的原始示例,以排除纯文本密码,但随后注释了一个新方法,该方法只是将密码字段作为加密文本返回。
class User {
private String password;
public void setPassword(String password) {
this.password = password;
}
@JsonIgnore
public String getPassword() {
return password;
}
@JsonProperty("password")
public String getEncryptedPassword() {
// encryption logic
}
}
https://stackoverflow.com/questions/9112900
复制相似问题