• 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<String> 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 = "机构联系方式", example = "13688888888")
        private String contact;

    结果

    注解+序列化的实现

  • 相关阅读:
    【HDU3681】Prison Break-状态压缩DP+BFS+二分答案
    【BashuOJ3520】警察局长-最短路树+树上背包+概率DP
    【POJ1201】Intervals-差分约束系统+单源最长路
    【BashuOJ2041】最大矩形-矩阵型DP
    【BashuOJ2041】最大矩形-矩阵型DP
    deleted
    deleted
    deleted
    deleted
    deleted
  • 原文地址:https://www.cnblogs.com/xiebq/p/10139987.html
Copyright © 2020-2023  润新知