【发布时间】:2019-05-21 03:39:10
【问题描述】:
我有一个比较两个对象的方法,但我不知道如何比较 Jackson 库的 JsonNode。
我想要这样的东西:
private boolean test(JsonNode source) {
JsonNode test = compiler.process(file);
return test.equals(source);
}
【问题讨论】:
我有一个比较两个对象的方法,但我不知道如何比较 Jackson 库的 JsonNode。
我想要这样的东西:
private boolean test(JsonNode source) {
JsonNode test = compiler.process(file);
return test.equals(source);
}
【问题讨论】:
可以使用JsonNode.equals:
节点对象的相等定义为完全(深度)值相等。这意味着可以通过比较根节点的相等性来比较完整的 JSON 树是否相等。
也许还添加一个空检查为test != null
【讨论】:
你当前的代码看起来没问题,JsonNode 类提供了JsonNode.equals(Object) 的检查方法:
节点对象的相等定义为完全(深度)值相等。
从 2.6 版开始,还有一个使用自定义比较器的重载版本:
public boolean equals(Comparator<JsonNode> comparator, JsonNode other){
return comparator.compare(this, other) == 0;
}
【讨论】: