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());
}
}