# 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 extends Enum>> 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 extends Enum>> 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();
}
}
```