使用JsonSerialize进行数据脱敏(自定义返回json数据样式)

发布于:2023-04-05 ⋅ 阅读:(1036) ⋅ 点赞:(0)

使用 com.fasterxml.jackson.databind.annotation.JsonSerialize 进行json数据的转化从而达到数据脱敏返回给前端

基本使用

在要操作的字段上添加 @JsonSerialize 注解(如果不返回该字段贼直接使用 @JsonIgnore),@JsonSerialize中有两个主要参数 usingnullsUsing
using:数据不为空转换为json的样式
nullsUsing:数据为空转换为json的样式
代码:
1 实体类中

@JsonSerialize(using= DateJsonSerialize.class)   //class是你自定义的json转换逻辑类
String id

2 json转换逻辑类

//继承JsonSerializer
public class DateJsonSerialize extends JsonSerializer<数据类型> {
         
    //重写serialize方法
    @Override
    public void serialize(原数据类型 原数据入参, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        //自定义处理方式
         .....
        jsonGenerator.writeString(操作后的数据);
    }
}

//样例

   @JsonSerialize(nullsUsing = DateJsonSerialize.class)  //如果时间字段未填写执行
    private Date finishTime;
//继承JsonSerializer
public class DateJsonSerialize extends JsonSerializer<Date> {
         
    //重写serialize方法
    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        //自定义处理方式
        jsonGenerator.writeString("时间未填写");
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到