diff --git a/CHANGELOG.md b/CHANGELOG.md index 4641bd49b..2586fe086 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ * 【poi 】 修复ExcelUtil.getSaxReader使用非MarkSupport流报错问题(issue#1225@Github) * 【core 】 修复HexUtil.format问题(issue#I268XT@Gitee) * 【core 】 修复ZipUtil判断压缩文件是否位于压缩目录内的逻辑有误的问题(issue#1251@Github) +* 【json 】 修复JSONObject.accumulate问题 ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONObject.java b/hutool-json/src/main/java/cn/hutool/json/JSONObject.java index 3ce391de4..0edcec220 100644 --- a/hutool-json/src/main/java/cn/hutool/json/JSONObject.java +++ b/hutool-json/src/main/java/cn/hutool/json/JSONObject.java @@ -432,7 +432,7 @@ public class JSONObject implements JSON, JSONGetter, Map InternalJSONUtil.testValidity(value); Object object = this.getObj(key); if (object == null) { - this.set(key, value instanceof JSONArray ? new JSONArray(this.config).set(value) : value); + this.set(key, (value instanceof JSONArray) ? value : new JSONArray(this.config).set(value)); } else if (object instanceof JSONArray) { ((JSONArray) object).set(value); } else { diff --git a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java index 8ad66b43e..802263c58 100644 --- a/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java +++ b/hutool-json/src/test/java/cn/hutool/json/JSONObjectTest.java @@ -535,4 +535,10 @@ public class JSONObjectTest { final String s = JSONUtil.toJsonStr(map); Console.log(s); } + + @Test + public void accumulateTest(){ + final JSONObject accumulate = JSONUtil.createObj().accumulate("key1", "value1"); + Assert.assertEquals("{\"key1\":[\"value1\"]}", accumulate.toString()); + } }