From 63b2f7c70d567c15f509a4990b93626d4f6fb03e Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 24 Aug 2024 13:28:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DJSONConfig.setDateFormat?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=90=8EsetWriteLongAsString=E5=A4=B1?= =?UTF-8?q?=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- .../main/java/cn/hutool/json/JSONUtil.java | 16 ++-------------- .../cn/hutool/json/serialize/JSONWriter.java | 9 +-------- .../java/cn/hutool/json/IssueIALQ0NTest.java | 19 +++++++++++++++++++ 4 files changed, 24 insertions(+), 23 deletions(-) create mode 100644 hutool-json/src/test/java/cn/hutool/json/IssueIALQ0NTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c78979ca..ae3f2efe9 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ # 🚀Changelog ------------------------------------------------------------------------------------------------------------- -# 5.8.32(2024-08-22) +# 5.8.32(2024-08-24) ### 🐣新特性 @@ -11,6 +11,7 @@ * 【crypto 】 修复SymmetricCrypto.setParams和setRandom没有加锁问题(issue#IAJIY3@Gitee) * 【crypto 】 修复ZipUtil压缩成流的方法检查文件时报错问题(issue#3697@Github) * 【core 】 修复CopyOptions.setFieldValueEditor后生成null值setIgnoreNullValue无效问题(issue#3702@Github) +* 【json 】 修复JSONConfig.setDateFormat设置后setWriteLongAsString失效问题(issue#IALQ0N@Gitee) ------------------------------------------------------------------------------------------------------------- # 5.8.31(2024-08-12) 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 e864dc011..6c4a4c975 100755 --- a/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONUtil.java @@ -1,15 +1,10 @@ package cn.hutool.json; -import cn.hutool.core.convert.NumberWithFormat; import cn.hutool.core.io.IORuntimeException; import cn.hutool.core.io.file.FileReader; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.map.MapWrapper; -import cn.hutool.core.util.ArrayUtil; -import cn.hutool.core.util.ClassUtil; -import cn.hutool.core.util.HexUtil; -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.util.*; import cn.hutool.json.serialize.GlobalSerializeMapping; import cn.hutool.json.serialize.JSONArraySerializer; import cn.hutool.json.serialize.JSONDeserializer; @@ -23,11 +18,7 @@ import java.lang.reflect.Type; import java.nio.charset.Charset; import java.sql.SQLException; import java.time.temporal.TemporalAccessor; -import java.util.Calendar; -import java.util.Date; -import java.util.Iterator; -import java.util.List; -import java.util.Map; +import java.util.*; /** * JSON工具类 @@ -763,9 +754,6 @@ public class JSONUtil { || object instanceof Number // || ObjectUtil.isBasicType(object) // ) { - if(object instanceof Number && null != jsonConfig.getDateFormat()){ - return new NumberWithFormat((Number) object, jsonConfig.getDateFormat()); - } return object; } diff --git a/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java b/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java index 161ac86bd..1023d6713 100755 --- a/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java +++ b/hutool-json/src/main/java/cn/hutool/json/serialize/JSONWriter.java @@ -11,14 +11,7 @@ import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.CharUtil; import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSON; -import cn.hutool.json.JSONArray; -import cn.hutool.json.JSONConfig; -import cn.hutool.json.JSONException; -import cn.hutool.json.JSONNull; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONString; -import cn.hutool.json.JSONUtil; +import cn.hutool.json.*; import java.io.IOException; import java.io.Writer; diff --git a/hutool-json/src/test/java/cn/hutool/json/IssueIALQ0NTest.java b/hutool-json/src/test/java/cn/hutool/json/IssueIALQ0NTest.java new file mode 100644 index 000000000..40aafed96 --- /dev/null +++ b/hutool-json/src/test/java/cn/hutool/json/IssueIALQ0NTest.java @@ -0,0 +1,19 @@ +package cn.hutool.json; + +import cn.hutool.core.date.DateUtil; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.Map; + +public class IssueIALQ0NTest { + @Test + void toJsonStrTest() { + Map map = new HashMap<>(); + map.put("id", 1826166955313201152L); + map.put("createdDate", DateUtil.parse("2024-08-24")); + final String jsonStr = JSONUtil.toJsonStr(map, JSONConfig.create().setDateFormat("yyyy-MM-dd HH:mm:ss").setWriteLongAsString(true)); + Assertions.assertEquals("{\"createdDate\":\"2024-08-24 00:00:00\",\"id\":\"1826166955313201152\"}", jsonStr); + } +}