在开发工作中,有一些用户敏感字段要在后端处理,所以就想在json格式化的时候做处理;我们工程配置的是fastjson来做为json序列化;所以想通过实现fastjson的接口来实现json可配置格式化;
首先想到的坑定是自定义注解了;通过注解来在json格式化的时候;做额外的处理;今天就用自定义注解来实现对手机号的一个脱敏;
首先定义一个注解:
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface MobileDesensitization {
}
然后利用fastjson的提供的拦截接口 ContextValueFilter 进行对字段进行拦截;然后进行数据变更;
注:fastjson提供的filter的类型:
- PropertyPreFilter 根据PropertyName判断是否序列化
- PropertyFilter 根据PropertyName和PropertyValue来判断是否序列化