想要在密码上添加 @JsonIgnore 属性 作为响应 Json
Want to Add @JsonIgnore property on Password in response Json
我想在用户域的密码 属性 上添加 @JsonIgnore of Jackson 以便我必须能够发送带有密码的 Json 并保存我的数据在数据库中,但作为回应,我不想显示密码。
我怎样才能实现这个请帮助我。
我试图在定义属性的用户的域级别使用它,但它完全忽略了 getter 和 setter 方法中的 属性。
我试过了
private String password;
@JsonIgnore
public String getPassword() {
return this.password;
}
像这样在 class 中同时使用 @JsonIgnore
and @JsonProperty
:
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
@JsonProperty
public void setPassword(String password) {
this.password = password;
}
我认为你应该使用 DTO Pattern 来设置/更改密码。
就我而言,这样做很有帮助:
@JsonProperty
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
如果您不想手动创建 getters/setters(例如
当使用 lombok 的 @Data)
@JsonProperty(access = Access.WRITE_ONLY)
private String password;
尝试使用 @JsonProperty 的 access 属性,如下所示。
这将避免反序列化,但由于提供了写入权限,因此可以保存密码。
@JsonProperty(access = Access.WRITE_ONLY)
@Column(name = "encrypted_password")
private String password;
访问设置,这意味着 属性 只能作为反序列化的一部分写入(设置)(使用“setter”方法,或分配给 Field,或作为 Creator 参数传递)但是不会被读取(get)到序列化,即属性的值不被序列化。
我想在用户域的密码 属性 上添加 @JsonIgnore of Jackson 以便我必须能够发送带有密码的 Json 并保存我的数据在数据库中,但作为回应,我不想显示密码。
我怎样才能实现这个请帮助我。
我试图在定义属性的用户的域级别使用它,但它完全忽略了 getter 和 setter 方法中的 属性。
我试过了
private String password;
@JsonIgnore
public String getPassword() {
return this.password;
}
像这样在 class 中同时使用 @JsonIgnore
and @JsonProperty
:
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
@JsonProperty
public void setPassword(String password) {
this.password = password;
}
我认为你应该使用 DTO Pattern 来设置/更改密码。
就我而言,这样做很有帮助:
@JsonProperty
private String password;
@JsonIgnore
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
如果您不想手动创建 getters/setters(例如 当使用 lombok 的 @Data)
@JsonProperty(access = Access.WRITE_ONLY)
private String password;
尝试使用 @JsonProperty 的 access 属性,如下所示。 这将避免反序列化,但由于提供了写入权限,因此可以保存密码。
@JsonProperty(access = Access.WRITE_ONLY)
@Column(name = "encrypted_password")
private String password;
访问设置,这意味着 属性 只能作为反序列化的一部分写入(设置)(使用“setter”方法,或分配给 Field,或作为 Creator 参数传递)但是不会被读取(get)到序列化,即属性的值不被序列化。