From 86ba812a9340afdc74a583002e017b5a926f0e3d Mon Sep 17 00:00:00 2001 From: Looly Date: Thu, 21 Sep 2023 13:06:23 +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 --- .../serialize/TemporalAccessorSerializer.java | 48 ++++++++++++++++--- .../dromara/hutool/json/IssueI82AM8Test.java | 43 +++++++++++++++++ .../src/test/resources/issueI82AM8.json | 46 ++++++++++++++++++ 3 files changed, 131 insertions(+), 6 deletions(-) create mode 100644 hutool-json/src/test/java/org/dromara/hutool/json/IssueI82AM8Test.java create mode 100644 hutool-json/src/test/resources/issueI82AM8.json diff --git a/hutool-json/src/main/java/org/dromara/hutool/json/serialize/TemporalAccessorSerializer.java b/hutool-json/src/main/java/org/dromara/hutool/json/serialize/TemporalAccessorSerializer.java index 211c96fd6..df0f39eb4 100644 --- a/hutool-json/src/main/java/org/dromara/hutool/json/serialize/TemporalAccessorSerializer.java +++ b/hutool-json/src/main/java/org/dromara/hutool/json/serialize/TemporalAccessorSerializer.java @@ -12,6 +12,8 @@ package org.dromara.hutool.json.serialize; +import org.dromara.hutool.core.lang.Assert; +import org.dromara.hutool.core.math.NumberUtil; import org.dromara.hutool.json.JSON; import org.dromara.hutool.json.JSONException; import org.dromara.hutool.json.JSONObject; @@ -19,6 +21,7 @@ import org.dromara.hutool.json.JSONObject; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.Month; import java.time.temporal.TemporalAccessor; /** @@ -83,13 +86,46 @@ public class TemporalAccessorSerializer implements JSONSerializer bean1 = + JSONUtil.toBean(json, new TypeReference>() {}); + + //Console.log(bean1); + bean1.forEach((k, v) -> Assertions.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" + } + } + } + ] + } +}