常规更新:之前我曾询问是否可以按原样获取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
}
Altough我知道我只会通过将obj
分配给oldObj
并且不添加它的值来引用obj
。我想知道是否有类似{J}的valueOf()
方法。
我已经得到了answears,这有助于我更接近解决方案,但却没有解决它。对于org.simple.json
,是否有可能让oldObj
具有当前值obj
以便稍后对其进行比较并确定差异?
现在我不能自己查看班级org.simple.json.JSONObject
,因为缺少来源。
作为参考:org.json.JSONObject
可以使用此构造函数解决它:
public JSONObject(JSONObject jo, java.lang.String[] names)
。但是没有提供我需要的其他功能。
答案 0 :(得分:1)
JSONObject oldObj = obj
我认为这不符合您的想法。您正在分配新引用,而不是使用obj。
中的值创建新对象您可以使用此处指定的构造函数: http://www.json.org/javadoc/org/json/JSONObject.html#JSONObject%28org.json.JSONObject,%20java.lang.String[]%29将旧值复制到新对象,但您必须指定需要复制的所有键。
答案 1 :(得分:0)
尝试使用Eclipse或NetBeans或其他IDE Debug选项! 它们有一个变量选项卡,您可以预览每个值。