请教个 Jackson 的问题:怎么让字段只在序列化时被忽略?

好像 @JsonIgnore 不能生效,加了之后序列化和反序列化都会被忽略掉了:

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public class LoginDTO {

    private String email;

    @JsonIgnore
    private String password; // 明文密码

    @JsonIgnore
    private String captcha; // 验证码
}

这样不能获取到 passwordcaptcha 信息,怎么让 password 字段接收反序列化值,但不能被序列化呢?(避免密码信息不小心发送到前端)

java
187 views
Comments
登录后评论
Sign In
·

用 access 属性,WRITE_ONLY 就行了,@JsonIgnore 意思是在序列化和反序列化都忽略。

public class LoginDTO {

    private String email;

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String password; // 明文密码

    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    private String captcha; // 验证码
}