# dict-converter **Repository Path**: solonlab/dict-converter ## Basic Information - **Project Name**: dict-converter - **Description**: java 字典翻译 + 字段替换 + 字段脱敏 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-11-02 - **Last Updated**: 2025-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ###### 直接上例子 ```java // 1. 实体 必须实现 DictEntity public class UserMember implements DictEntity { // 2. 固定map,用key,转换为value @KvConverter({ @Kv(k="1",v="男"), @Kv(k="0",v="女"), }) public int sex; // 3. 用枚举值,转换为枚举名称 @EnumConverter(EnumSmall.class) public int tx; // 4. 邮箱脱敏 @DesensitizedConverter(EmailDesensitizedAction.class) public String email = "2225w@qq.com"; // 5. 手机号码脱敏 @DesensitizedConverter(PhoneDesensitizedAction.class) public String phone = "1357759998"; // 6. 支持1v1对象嵌套,支持map、colloct、array对象嵌套 UserMember member; } ``` ###### 返回的json ```json { "tx":0,"phone":"135****9998", "sex":0,"sexName":"女", "member": { "tx":0, "phone":"135****9998", "sex":0, "sexName":"女", "txName":"FF_23", "email":"2****@qq.com" }, "txName":"FF_23", "email":"2****@qq.com" } ``` ###### 自定义注解,只需3步 ```xml top.rish.converter dict-converter-solon 1.0 top.rish.converter dict-converter-spring-boot-starter 1.0 ``` ```java // 1. 定义注解 EnumConverter @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface EnumConverter { // 例如,你想将规则定为:用枚举的value替换为枚举的名称 Class> value(); } // 2. 实现EnumConverter的handler. public class EnumConverterHandler implements ConvertHandler { @Override public void convert(MetaMap metaMap /* 当前继承了DictEntity对应的一个map【中间产物】 */, DictEntity entity /*当前对象的值*/, Object value /*当前字段的值*/, FieldWrap fieldWrap /*当前字段的元信息*/, EnumConverter convert /*你的注解,传入的值*/ ) { // 这里进行转换为你想要的内容, // 对metaMap.put()一下, // 该jsonObject就会有你新put的字段了 Class> enumClass = convert.value(); Enum ev = RefKit.getEnumByValue(enumClass, value); if(ObjKit.isNotEmpty(ev)){ metaMap.set(fieldWrap.getName()+"Name", Objects.toString(ev)); } } } // 3. 注册bean到solon容器 @Configuration public class Config { @Bean public KvConverterHandler kvConverterHandler(){ return new KvConverterHandler(); } @Bean public DesensitizedConverterHandler desensitizedConverterHandler(){ return new DesensitizedConverterHandler(); } @Bean public EnumConverterHandler enumConverterHandler(){ return new EnumConverterHandler(); } } ```