diff --git a/CHANGELOG.md b/CHANGELOG.md index 2f6552c39..4e59ff8c6 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ # 5.8.23(2023-09-21) ### 🐣新特性 +* 【json 】 改进TemporalAccessorSerializer支持dayOfMonth和month枚举名(issue#I82AM8@Gitee) ### 🐞Bug修复 * 【cron 】 修复Cron表达式range解析错误问题(issue#I82CSH@Gitee) diff --git a/hutool-json/src/main/java/cn/hutool/json/serialize/TemporalAccessorSerializer.java b/hutool-json/src/main/java/cn/hutool/json/serialize/TemporalAccessorSerializer.java index 7ca54d49b..0577551d3 100755 --- a/hutool-json/src/main/java/cn/hutool/json/serialize/TemporalAccessorSerializer.java +++ b/hutool-json/src/main/java/cn/hutool/json/serialize/TemporalAccessorSerializer.java @@ -1,5 +1,6 @@ package cn.hutool.json.serialize; +import cn.hutool.core.lang.Assert; import cn.hutool.json.JSON; import cn.hutool.json.JSONException; import cn.hutool.json.JSONObject; @@ -7,6 +8,7 @@ import cn.hutool.json.JSONObject; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.Month; import java.time.temporal.TemporalAccessor; /** @@ -61,11 +63,33 @@ public class TemporalAccessorSerializer implements JSONObjectSerializer bean1 = + JSONUtil.toBean(json, new TypeReference>() { + }, false); + + bean1.forEach((k, v) -> Assert.assertNotNull(v.getTestimonials())); + } + + // 对象 + @Data + public static class MedicalCenter { + + private Map medicalCenterLocalized; + + @Data + public static class MedicalCenterLocalized { + + private List testimonials; + + @Data + public static class Testimonial { + private LocalDateTime createTime; + } + } + } +} diff --git a/hutool-json/src/test/resources/issueI82AM8.json b/hutool-json/src/test/resources/issueI82AM8.json new file mode 100644 index 000000000..a12f9bde9 --- /dev/null +++ b/hutool-json/src/test/resources/issueI82AM8.json @@ -0,0 +1,46 @@ +{ + "en": { + "testimonials": [ + { + "createTime": { + "dayOfYear": 261, + "dayOfWeek": "MONDAY", + "year": 2023, + "month": "SEPTEMBER", + "nano": 0, + "monthValue": 9, + "dayOfMonth": 18, + "hour": 15, + "minute": 18, + "second": 0, + "chronology": { + "id": "ISO", + "calendarType": "iso8601" + } + } + } + ] + }, + "zh": { + "testimonials": [ + { + "createTime": { + "dayOfYear": 261, + "dayOfWeek": "MONDAY", + "year": 2023, + "month": "SEPTEMBER", + "nano": 0, + "monthValue": 9, + "dayOfMonth": 18, + "hour": 15, + "minute": 18, + "second": 0, + "chronology": { + "id": "ISO", + "calendarType": "iso8601" + } + } + } + ] + } +}