9

我有一个比较两个对象的方法,但我不知道如何通过 Jackson 库比较 JsonNode。

我想要这样的东西:

private boolean test(JsonNode source) {
    JsonNode test = compiler.process(file);
    return test.equals(source);
}
4

2 回答 2

9

这足以使用JsonNode.equals

节点对象的相等定义为完全(深度)值相等。这意味着可以通过比较根节点的相等性来比较完整的 JSON 树的相等性。

也许还添加一个空检查作为test != null

于 2018-12-20T15:39:15.153 回答
3

您当前的代码看起来不错,JsonNode该类提供JsonNode.equals(Object)了检查方法:

节点对象的相等定义为完全(深度)值相等。

从 2.6 版开始,还有一个使用自定义比较器的重载版本:

public boolean equals(Comparator<JsonNode> comparator, JsonNode other){
    return comparator.compare(this, other) == 0;
}
于 2018-12-20T15:39:30.030 回答