关于后端:使用JsonSerialize进行数据脱敏自定义返回json数据样式

6次阅读

共计 920 个字符,预计需要花费 3 分钟才能阅读完成。

应用 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("工夫未填写");
    }
}
正文完
 0