gpt4 book ai didi

java - JSONObject.put() 不会存储另一个 JSONObject 的引用

转载 作者:行者123 更新时间:2023-12-03 20:21:36 28 4
gpt4 key购买 nike

你是否注意到,如果你使用 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 很陌生,但我认为这不是人们所期望的行为。

最佳答案

我也遇到过这个问题,这似乎是正常行为,但我一直无法重现它。解决方法是将所有放入和取出的对象视为按值传递。这实际上可能是一个问题,但不再支持您似乎正在使用的 JSON 库。如果可以的话,我会换成 GSON,它在语法上与您正在使用的库非常相似,没有这个问题,并且目前受支持。

关于java - JSONObject.put() 不会存储另一个 JSONObject 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13767332/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com