diff --git a/CHANGELOG.md b/CHANGELOG.md index 244faf230..080b4b39f 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.27(2024-03-05) +# 5.8.27(2024-03-06) ### 🐣新特性 * 【extra 】 FreemarkerEngine修改默认版本参数 @@ -11,6 +11,7 @@ ### 🐞Bug修复 * 【core 】 修复PathMover对目标已存在且只读文件报错错误问题(issue#I95CLT@Gitee) +* 【json 】 修复JSONUtil序列化和反序列化预期的结果不一致问题(pr#3507@Github) ------------------------------------------------------------------------------------------------------------- # 5.8.26(2024-02-10) diff --git a/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java b/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java index 8f3ebb68c..4cfeca0ce 100755 --- a/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java +++ b/hutool-core/src/main/java/cn/hutool/core/convert/ConverterRegistry.java @@ -153,7 +153,7 @@ public class ConverterRegistry implements Serializable { */ @SuppressWarnings("unchecked") public Converter getDefaultConverter(Type type) { - Class key = TypeUtil.getClass(type); + final Class key = TypeUtil.getClass(type); return (null == defaultConverterMap || null == key) ? null : (Converter) defaultConverterMap.get(key); } diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java index baf0e65f6..e864dc011 100755 --- a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java @@ -796,6 +796,7 @@ public class JSONUtil { return object.toString(); } + // pr#3507 // Class类型保存类名 if (object instanceof Class) { return ((Class) object).getName(); diff --git a/hutool-json/src/test/java/cn/hutool/json/Issue3504Test.java b/hutool-json/src/test/java/cn/hutool/json/Issue3504Test.java index 577dbe6da..ca7b78de2 100644 --- a/hutool-json/src/test/java/cn/hutool/json/Issue3504Test.java +++ b/hutool-json/src/test/java/cn/hutool/json/Issue3504Test.java @@ -1,6 +1,7 @@ package cn.hutool.json; import lombok.Data; +import org.junit.Assert; import org.junit.Test; /** @@ -14,8 +15,9 @@ public class Issue3504Test { jsonBean.setName("test"); jsonBean.setClasses(new Class[]{String.class}); String huToolJsonStr = JSONUtil.toJsonStr(jsonBean); - System.out.println("hutool json str-------" + huToolJsonStr); - System.out.println(JSONUtil.toBean(huToolJsonStr, JsonBean.class)); + final JsonBean bean = JSONUtil.toBean(huToolJsonStr, JsonBean.class); + Assert.assertNotNull(bean); + Assert.assertEquals("test", bean.getName()); } @Data diff --git a/hutool-json/src/test/java/cn/hutool/json/Issue3506Test.java b/hutool-json/src/test/java/cn/hutool/json/Issue3506Test.java index 70f128d3c..d854d5685 100644 --- a/hutool-json/src/test/java/cn/hutool/json/Issue3506Test.java +++ b/hutool-json/src/test/java/cn/hutool/json/Issue3506Test.java @@ -1,6 +1,7 @@ package cn.hutool.json; import lombok.Data; +import org.junit.Assert; import org.junit.Test; /** @@ -13,8 +14,9 @@ public class Issue3506Test { Languages languages = new Languages(); languages.setLanguageType(Java.class); String hutoolJSONString = JSONUtil.toJsonStr(languages); - System.out.println(hutoolJSONString); - System.out.println(JSONUtil.toBean(hutoolJSONString, Languages.class)); + final Languages bean = JSONUtil.toBean(hutoolJSONString, Languages.class); + Assert.assertNotNull(bean); + Assert.assertEquals(bean.getLanguageType(), Java.class); } @Data