如果将对象反序列化为
Map<String,Object>,也可以使用Guava,则可以
Maps.difference用来比较两个生成的地图。
请注意,如果您关心元素的 顺序 ,
Json则不会保留
Objects 字段的顺序,因此此方法不会显示这些比较。
这是您的操作方式:
public static void main(String[] args) { String json1 = "{"name":"ABC", "city":"XYZ", "state":"CA"}"; String json2 = "{"city":"XYZ", "street":"123 anyplace", "name":"ABC"}"; Gson g = new Gson(); Type mapType = new TypeToken<Map<String, Object>>(){}.getType(); Map<String, Object> firstMap = g.fromJson(json1, mapType); Map<String, Object> secondMap = g.fromJson(json2, mapType); System.out.println(Maps.difference(firstMap, secondMap));}该程序输出:
not equal: only on left={state=CA}: only on right={street=123 anyplace}在此处阅读更多有关结果
MapDifference对象包含哪些信息的信息。



