From 6d33c3f413766c586551dbcb124cdbaf481d957a Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 21 Sep 2023 13:06:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E8=BF=9BTemporalAccessorSerializer?= =?UTF-8?q?=E6=94=AF=E6=8C=81dayOfMonth=E5=92=8Cmonth=E6=9E=9A=E4=B8=BE?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../serialize/TemporalAccessorSerializer.java | 34 ++++++++++++-- .../java/cn/hutool/json/IssueI82AM8Test.java | 43 +++++++++++++++++ .../src/test/resources/issueI82AM8.json | 46 +++++++++++++++++++ 4 files changed, 119 insertions(+), 5 deletions(-) create mode 100644 hutool-json/src/test/java/cn/hutool/json/IssueI82AM8Test.java create mode 100644 hutool-json/src/test/resources/issueI82AM8.json 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" + } + } + } + ] + } +}