【7.2.5】【wrapper】增加对包装后的值得判断,不一致才进行包装

pull/37/head
fengshuonan 2022-09-06 17:55:49 +08:00
parent fb3b8cea00
commit 902ae21c22
2 changed files with 11 additions and 5 deletions

View File

@ -36,11 +36,11 @@ public class EnumFieldFormatSerializer extends JsonSerializer<Object> {
public void serialize(Object originValue, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) {
// 最终转化的值
Object result = originValue;
Object formattedValue = originValue;
// 如果原始字段是枚举类型则直接调用接口的getName()方法完成转化
if (originValue instanceof ReadableEnum) {
result = ((ReadableEnum) originValue).getName();
formattedValue = ((ReadableEnum) originValue).getName();
} else {
// 如果是其他类型则获取枚举的getKey()的类型是什么
@ -49,14 +49,17 @@ public class EnumFieldFormatSerializer extends JsonSerializer<Object> {
ReadableEnum[] enumConstants = processEnum.getEnumConstants();
for (ReadableEnum enumConstant : enumConstants) {
if (enumConstant.getKey().equals(originValue)) {
result = enumConstant.getName();
formattedValue = enumConstant.getName();
}
}
}
}
// 进行数据转化写入到渲染的JSON中
CommonFormatUtil.writeField(formatTypeEnum, originValue, result, jsonGenerator);
if (!originValue.equals(formattedValue)) {
CommonFormatUtil.writeField(formatTypeEnum, originValue, formattedValue, jsonGenerator);
}
}
}

View File

@ -54,7 +54,10 @@ public class SimpleFieldFormatSerializer extends JsonSerializer<Object> {
Object formattedValue = simpleFieldFormatProcess.formatProcess(originValue);
// 将转化的值根据策略进行写入到渲染的json中
CommonFormatUtil.writeField(formatTypeEnum, originValue, formattedValue, jsonGenerator);
if (!originValue.equals(formattedValue)) {
CommonFormatUtil.writeField(formatTypeEnum, originValue, formattedValue, jsonGenerator);
}
}
}