From 0ea87a38e6adb96d4c92abb2a8ea1f088eb1f567 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 24 Oct 2023 00:29:28 +0800 Subject: [PATCH] fix test --- .../dromara/hutool/json/IssueI7VM64Test.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/hutool-json/src/test/java/org/dromara/hutool/json/IssueI7VM64Test.java b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI7VM64Test.java index cbd852724..216fc3492 100644 --- a/hutool-json/src/test/java/org/dromara/hutool/json/IssueI7VM64Test.java +++ b/hutool-json/src/test/java/org/dromara/hutool/json/IssueI7VM64Test.java @@ -17,19 +17,24 @@ import org.junit.jupiter.api.Test; import java.util.HashMap; +/** + * FastJSON和Hutool不同策略测试
+ * 在put时,Hutool采用“即时转换”的方式,不再与原对象有关联,
+ * 而FastJSON采用“暂存”方式,put进JSONObject的对象不变,只有序列化时转换 + */ public class IssueI7VM64Test { - @SuppressWarnings("MismatchedQueryAndUpdateOfCollection") @Test void hutoolJSONTest() { final HashMap map = new HashMap<>(); map.put("a", "1"); - final JSONObject jsonObject = new JSONObject(map); + final JSONObject jsonObject = new JSONObject(); + jsonObject.put("c", map); map.put("b", 2); //Console.log("Hutool JSON: " + jsonObject); - Assertions.assertEquals("{\"a\":\"1\"}", jsonObject.toString()); + Assertions.assertEquals("{\"c\":{\"a\":\"1\"}}", jsonObject.toString()); } @Test @@ -37,11 +42,13 @@ public class IssueI7VM64Test { final HashMap map = new HashMap<>(); map.put("a", "1"); - final com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(map); + final com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject(); + jsonObject.put("c", map); + map.put("b", 2); //Console.log("FastJSON: " + jsonObject); - Assertions.assertEquals("{\"a\":\"1\",\"b\":2}", jsonObject.toString()); + Assertions.assertEquals("{\"c\":{\"a\":\"1\",\"b\":2}}", jsonObject.toString()); } @Test @@ -49,10 +56,12 @@ public class IssueI7VM64Test { final HashMap map = new HashMap<>(); map.put("a", "1"); - final com.alibaba.fastjson2.JSONObject jsonObject = new com.alibaba.fastjson2.JSONObject(map); + final com.alibaba.fastjson2.JSONObject jsonObject = new com.alibaba.fastjson2.JSONObject(); + jsonObject.put("c", map); + map.put("b", 2); //Console.log("FastJSON2 " + jsonObject); - Assertions.assertEquals("{\"a\":\"1\"}", jsonObject.toString()); + Assertions.assertEquals("{\"c\":{\"a\":\"1\",\"b\":2}}", jsonObject.toString()); } }