Jackson 序列化字段脱敏处理

3,384 阅读1分钟

网上一查看到了这个解决办法。 传送门

当然解决办法不止一个。直接上代码

public class Test {
    
    private String name;

    @JsonProperty("a")
    @JsonSerialize(converter = NameDesensitizeConverter.class)
    public String getName() {
        return name;
    }
    
    @JsonProperty("b")
    public void setName(String name) {
        this.name = name;
    }
}

public class NameDesensitizeConverter extends StdConverter<String, String>{

    @Override
    public String convert(String value) {
        return "***";
    }

}

没错,就是@JsonSerialize注解。通过这个注解自定义name字段的序列化,在覆盖的convert方法中返回脱敏之后的字段值就可以了(这里我只是简单返回***,可以根据具体需要更改)。