我有一个比较两个对象的方法,但是我不知道如何通过Jackson库比较JsonNode。
我想要得到这样的东西:
private boolean test(JsonNode source) {
JsonNode test = compiler.process(file);
return test.equals(source);
}
答案 0 :(得分:3)
使用JsonNode.equals就足够了:
节点对象的相等性定义为完全(深度)值相等性。这意味着可以通过比较根节点的相等性来比较完整的JSON树是否相等。
也许也将空检查添加为test != null
答案 1 :(得分:1)
您当前的代码看起来还不错,JsonNode
类提供了JsonNode.equals(Object)
方法进行检查:
节点对象的相等性定义为完全(深度)值相等。
从2.6版开始,还有一个使用自定义比较器的重载版本:
public boolean equals(Comparator<JsonNode> comparator, JsonNode other){
return comparator.compare(this, other) == 0;
}