你有没有注意到,如果你用 put() 将一个 JSONObject 放入另一个 JSONObject 中,容器 JSONObject 将不会存储对第一个 JSONObject 的引用,而是一个新的 JSONObject?
一个例子:
JSONObject jtmp1 = new JSONObject();
JSONObject jtmp2 = new JSONObject();
jtmp1.put("test", jtmp2);
System.out.println(System.identityHashCode(jtmp2));
System.out.println(System.identityHashCode(jtmp1.getJSONObject("test")));
两次打印的输出不同,因此 jtmp2 不直接存储在 jtmp1 中。
这是正常行为吗?有什么解决方法吗?我对 JAVA 很陌生,但我认为这不是人们所期望的行为。