如何将两个JsonNode与Jackson进行比较?

时间:2018-12-20 15:35:05

标签: java jackson jsonnode

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

我想要得到这样的东西:

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

2 个答案:

答案 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;
}