我有两个复杂的JSONObject:
JSONObject jsonOuter1 = new JSONObject();
JSONObject jsonOuter2= new JSONObject();
JSONObject JsonInner1 = new JSONObject();
JSONObject JsonInner2= new JSONObject();
JSONArray arr1 = new JSONArray();
JSONArray arr2 = new JSONArray();
arr1.put(new Long(12l));
arr1.put(new String("hello"));
arr2.put(new Long(12l));
arr2.put(new String("hello"));
JsonInner1.put(new String("helllo"), new Long(2l));
JsonInner2.put(new String("helllo"), new Long(2l));
arr1.put(JsonInner1);
arr2.put(JsonInner2);
jsonOuter1.put("first", arr1);
jsonOuter2.put("first", arr2);
Diff diff = javers.compare(jsonOuter1 , jsonOuter2);
差异:
MapChange{globalId: org.json.JSONObject/ property: 'nameValuePairs', entryChanges:
[EntryValueChange{ first: '[12,"hello", {"helllo":2}]'>>'[12,"hello",{"helllo":2}]' }]}
这只是一个例子,在我的应用程序中,我正在从DB中的json记录创建那些JSONObject。 我怎样才能比较内在价值并得到没有变化的正确结果? 非常感谢。
答案 0 :(得分:0)
JaVers没有关于org.json对象的特定知识或配置,并将它们视为任何其他对象。在比较对象之前,您应该注意域模型映射和equals(),请参阅https://javers.org/documentation/domain-configuration/ 否则,您将获得默认映射(所有对象映射为ValueObjects),这有时可以工作,但它可能不适用于复杂的JSON模型。
很难给出关于映射org.json.JSONObject的提示,而无需仔细查看代码。