【发布时间】:2011-08-20 01:07:21
【问题描述】:
在 Java 中比较两个 JSON 字符串的最佳方法是什么?我希望能够只打印出键/值对的差异。
我正在使用 gson 库将其转换为地图并进行断言,但它同时显示了两个 JSON:
Type type = new TypeToken<Map<String, String>>() {}.getType();
Gson gson = new Gson();
Map<String, String> mapExpected = gson.fromJson(expectedJson, type);
Map<String, String> mapResponse = gson.fromJson(jsonResponse, type);
Assert.assertEquals(mapExpected, mapResponse);
有没有更好的方法来做到这一点?
【问题讨论】:
-
计算[设置差异][1]。 [1]:stackoverflow.com/questions/1723168/…
-
@mcandre,你的链接是关于 JS 的,他用 java 提问
-
这个概念仍然适用。将 JSON 数据转换为集合,然后显示差异 (
-)。 -
我同意这个基本想法。恕我直言,该帖子仍然不适用,因为 JSON 结构是地图而不是集合,需要中间通道来进行转换。