您的当前位置:首页正文

Json序列化,前缀或者脱敏实现

2021-01-08 来源:易榕旅网
Json序列化,前缀或者脱敏实现

注解+aop⼀:定义⼀个注解

⼆:在序列化时候,判断字段上是否有注解,进⾏序列化的操作三:在对应的字段上添加上注解

@Target({ElementType.FIELD})

@Retention(RetentionPolicy.RUNTIME)@JacksonAnnotationsInside

@JsonSerialize(using = SensitiveWordSerializer.class)public @interface SensitiveWord {

SensitiveWordType sensitiveWordType() default SensitiveWordType.MOBILE ;}

public class SensitiveWordSerializer extends JsonSerializer implements ContextualSerializer { private SensitiveWordType sensitiveWordType ;

@Override

public JsonSerializer createContextual(SerializerProvider prov,BeanProperty property) throws JsonMappingException { SensitiveWord sensitiveWord = property.getAnnotation(SensitiveWord.class); if (sensitiveWord != null) {

sensitiveWordType = sensitiveWord.sensitiveWordType(); }

return this ; }

@Override

public void serialize(String value,JsonGenerator gen,SerializerProvider serializers) throws IOException, JsonProcessingException { if (!StringUtils.hasText(value)) { gen.writeString(value); return; }

if (sensitiveWordType != null) {

value = value.replaceAll(sensitiveWordType.getRegex() , sensitiveWordType.getReplacement()); }

gen.writeString(value); }}

@SensitiveWord

@ApiModelProperty(value = \"机构联系⽅式\ private String contact;

结果

注解+序列化的实现

因篇幅问题不能全部显示,请点此查看更多更全内容