Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一个JSONObject的当前值分配给另一个JSONObject_Java_Json_Compare - Fatal编程技术网

Java 将一个JSONObject的当前值分配给另一个JSONObject

Java 将一个JSONObject的当前值分配给另一个JSONObject,java,json,compare,Java,Json,Compare,常规更新:我之前问过是否可以按原样获取JSONObject的值,以便稍后将其与被覆盖版本进行比较。我的第一次尝试是: JSONObject oldObj = new JSONObject(); public void addRootNode(String nodeid, int depth) { oldObj = obj; //Get value of obj as is addNodesToGraph(nodeid, depth); //Change value

常规更新:我之前问过是否可以按原样获取JSONObject的值,以便稍后将其与被覆盖版本进行比较。我的第一次尝试是:

JSONObject oldObj = new JSONObject();
public void addRootNode(String nodeid, int depth) {
    oldObj = obj;
    //Get value of obj as is
    addNodesToGraph(nodeid, depth);
    //Change value of obj
}

//later
public boolean compareJSON(){
    return oldObj.equals(obj);
    //should return false
}
虽然我知道我只会通过将
oldObj
赋值给
obj
来引用
obj
,而不会将其值相加。我想知道对于JSON是否有类似
valueOf()
的方法
我已经得到了帮助我更接近解决方案的答案,但没有解决它。对于
org.simple.json
是否有可能获得
oldObj
的当前值
obj
,以便稍后比较它们并确定差异?
现在我自己无法查看类
org.simple.json.JSONObject
,因为缺少源代码。

作为参考:
org.json.JSONObject
可以用这个构造函数解决它:
公共JSONObject(JSONObject jo,java.lang.String[]名称)
。但不提供我需要的其他功能

JSONObject oldObj = obj
我想这和你想的不一样。您将为指定一个新的参照,而不是使用obj中的值创建一个新对象

您可以使用此处指定的构造函数:
要将旧值复制到新对象,但必须指定需要复制的所有键。

尝试使用Eclipse或NetBeans或其他IDE调试选项!
它们有一个变量选项卡,您可以预览每个值。

您正在将
obj
的值分配给
oldObj
,并同时打印这两个值,因此显然
toJSONString
将打印相同的值。您知道Java中对象和引用之间的区别吗?是的,我知道我目前只将
oldObj
分配给
obj
。我想知道是否有像
valueof()
之类的选项。根据文档
publicJSONObject(JSONObject jo,java.lang.String[]names)
应该做这项工作,但我得到了这个错误
构造函数JSONObject(JSONObject,String[])是未定义的
您正在使用的JSONObject类的包名是什么?
org.json.simple
我现在正试图查找源代码以查看此构造函数是否存在。它是一个完全不同的JSONObject github.com/fangyidong/json-simple。。这没有通过构造函数进行复制的方法。我不想调试它,我想在JSONObject之后获得差异,这样您就可以获取(字符串键)或(对象键)。您不能只使用valueOf(),因为json可以有许多元素。