gpt4 book ai didi

java - 比较两个 JSON

转载 作者:行者123 更新时间:2023-12-03 21:27:37 24 4
gpt4 key购买 nike

在 Java 中比较两个 JSON 字符串的最佳方法是什么?我希望能够仅打印出键/值对的差异。

我正在使用 gson 库将其转换为 map 并执行断言,但它同时显示两个 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);

有更好的方法吗?

最佳答案

如果你只是想比较简单的平等,Jackson会让事情变得容易;以防万一这可能会有所帮助:

JsonNode tree1 = objectMapper.readTree(json1);
JsonNode tree2 = objectMapper.readTree(json2);
if (!tree1.equals(tree2)) { // handle diffing
}

现在;由于所有 JsonNode 对象都正确地实现了相等性检查(因此键的顺序无关紧要等),您可以将其用于递归差异以查看内容在哪里以及如何不同。对于 ObjectNode,您可以获得键名,删除相同的 (tree1.getFieldNames().removeAll(tree2.getFieldNames()) 等等。

关于java - 比较两个 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128874/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com