我使用这段代码在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?
发布于 2015-09-01 12:27:00
如果将对象反序列化为Map,您可以使用芭乐此外,您还可以使用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>(){}.getType();
Map firstMap = g.fromJson(json1, mapType);
Map 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对象包含。
发布于 2015-09-01 12:27:00
RFC6902符合标准的库链接,用于查找两个JsonObject对象之间的差异。
https://stackoverflow.com/questions/32323256
复制相似问题