【发布时间】:2026-02-15 00:15:01
【问题描述】:
我想比较 Java 中的两个 rest api 响应。 目前我正在使用 zjsonpatch 库,因此我能够得到差异,但差异包含其中一个 json 的值。我想要两个 json 节点。
请在下面找到我的代码:
ObjectMapper jacksonObjectMapper = new ObjectMapper();
JsonNode beforeNode = jacksonObjectMapper.readTree(jsonActual);
JsonNode afterNode = jacksonObjectMapper.readTree(jsonCurrent);
JsonPatch patch = JsonDiff.asJsonPatch(beforeNode, afterNode);
String diffs = patch.toString();
下面是我得到的输出
op: replace; path: "/businessServiceabilityResponse/0/serviceabilityDetail/0/serviceabilitySource"; value: "ELOC"]
有没有办法让我得到两个不匹配的节点?
【问题讨论】:
-
这能回答你的问题吗? How to compare two JsonNodes with Jackson?
-
没有。这只是做断言并返回一个布尔值。
-
你到底想要输出什么?节点
/businessServiceabilityResponse/0/serviceabilityDetail/0? -
@Smile 我想要两个不同的文件的节点,例如 /businessServiceabilityResponse/0/serviceabilityDetail/0/serviceabilitySource"; value: "ELOC"] 和 /businessServiceabilityResponse/0/serviceabilityDetail/0/可服务性来源”; value: "ELOC1"]... 这将清楚地显示差异
-
我不知道是否有任何图书馆可以开箱即用地做到这一点。但是您可以编写一些自定义逻辑来根据 zjsonpatch 返回的路径从两个 json 文件中查找不匹配的值
标签: java json rest json-patch