【发布时间】:2019-08-01 20:54:26
【问题描述】:
在尝试将多个对象累积到 JSONObject 中时,我遇到了一个相当奇怪的交互。
我使用的是json-20180813.jar导入库
见下方代码
import org.json.JSONObject;
JSONObject masterobject = new JSONObject();
JSONObject testobject = new JSONObject();
testobject.put("Key1","Value1");
testobject.put("Key2","Value2");
masterobject.accumulate("masterkey1",testobject);
System.out.println(masterobject.toString(1));
System.out.println("~~~~~~~~~~~~~~~~~");
testobject.put("Key1","Value3");
System.out.println(masterobject.toString(1));
预期的输出是这样的:
主键 {value2 value1}
不是主键 {value2 value3}
相反,我最终得到了这个
{"masterkey1": {
"Key2": "Value2",
"Key1": "Value1"
}}
~~~~~~~~~~~~~~~~~
{"masterkey1": {
"Key2": "Value2",
"Key1": "Value3"
}}
我的问题是,为什么 .put() 对 masterkey 有影响?
注意:如果我要使用第二个 new JSONObject() 并累积该对象,则此问题已解决,但是我想了解为什么 .put() 编辑另一个对象。
【问题讨论】:
标签: java json put accumulate