diff --git a/hutool-json/src/test/java/cn/hutool/json/Issue4214Test.java b/hutool-json/src/test/java/cn/hutool/json/Issue4214Test.java new file mode 100644 index 0000000000..e131a86173 --- /dev/null +++ b/hutool-json/src/test/java/cn/hutool/json/Issue4214Test.java @@ -0,0 +1,32 @@ +package cn.hutool.json; + +import lombok.Data; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class Issue4214Test { + + @Test + void toBeanTest(){ + LicenseInfo licenseInfo = new LicenseInfo(); + licenseInfo.setAuthTypeEnum(AuthTypeEnum.OFFICIAL); + + String jsonStr = JSONUtil.toJsonStr(licenseInfo); + assertEquals("{\"authTypeEnum\":\"OFFICIAL\"}", jsonStr); + + // 这里反序列化会报错 + LicenseInfo bean = JSONUtil.toBean(jsonStr, LicenseInfo.class); + assertEquals(AuthTypeEnum.OFFICIAL, bean.getAuthTypeEnum()); + } + + @Data + static class LicenseInfo{ + private AuthTypeEnum authTypeEnum; + } + + enum AuthTypeEnum{ + OFFICIAL, + SELF_BUILD + } +}