我使用这段代码在Android中使用Gson比较了两个JSON对象:
String json1 = "{\"name\": \"ABC\", \"city\": \"XYZ\"}";
String json2 = "{\"city\": \"XYZ\", \"name\": \"ABC\"}";
JsonParser parser = new JsonParser();
JsonElement t1 = parser.parse(json1);
JsonElement t2 = parser.parse(json2);
boolean match = t2.equals(t1);
有没有办法用JSON格式的Gson来获得两个对象之间的 * 差异 *?
1条答案
按热度按时间zbq4xfa01#
如果您将对象还原序列化为
Map<String, Object>
,您也可以使用Guava,您可以使用Maps.difference
来比较两个产生的Map。请注意,如果您关心元素的 order,
Json
并不保持Object
的字段的顺序,因此该方法不会显示这些比较。你可以这样做:
此程序输出:
在此阅读更多有关生成的
MapDifference
对象包含哪些信息的信息。