Closed Yangqi0338 closed 2 months ago
JDK版本: openjdk_8_201 hutool版本: 5.8.28(请确保最新尝试是否还有问题)
枚举的getCode方法加了@JsonValue的序列化注解,如果我的DTO里有这个枚举,序列化出来的值是code。 但是JSONUtil.toJsonStr 会将序列化枚举的name
@Getter @AllArgsConstructor public enum ReplayRatingDetailType { /**/ RATING("评分"), NEXT_IMPROVE("后续改善"), ; /** 编码 */ @EnumValue private final String code; /** 文本 */ private final String text; ReplayRatingDetailType(String text) { String code = this.name().toLowerCase(); this.code = StrUtil.toCamelCase(code); this.text = text; } public static ReplayRatingDetailType findByCode(String code) { return Arrays.stream(ReplayRatingDetailType.values()).filter(it -> it.code.equals(code)).findFirst().orElse(null); } @JsonValue public String getCode() { return code; } }
堆栈信息
测试涉及到的文件(注意脱密)
比如报错的Excel文件,有问题的图片等。
不能兼容。
可以使用JSONSerializer完成自定义序列化。
版本情况
JDK版本: openjdk_8_201 hutool版本: 5.8.28(请确保最新尝试是否还有问题)
问题描述(包括截图)
枚举的getCode方法加了@JsonValue的序列化注解,如果我的DTO里有这个枚举,序列化出来的值是code。 但是JSONUtil.toJsonStr 会将序列化枚举的name
堆栈信息
测试涉及到的文件(注意脱密)
比如报错的Excel文件,有问题的图片等。