【问题标题】:How to compare two JsonNodes with Jackson?如何将两个 JsonNodes 与 Jackson 进行比较?
【发布时间】:2019-05-21 03:39:10
【问题描述】:

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

我想要这样的东西:

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

【问题讨论】:

    标签: java jackson jsonnode


    【解决方案1】:

    可以使用JsonNode.equals:

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

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

    【讨论】:

      【解决方案2】:

      你当前的代码看起来没问题,JsonNode 类提供了JsonNode.equals(Object) 的检查方法:

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

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

      public boolean equals(Comparator<JsonNode> comparator, JsonNode other){
          return comparator.compare(this, other) == 0;
      }
      

      【讨论】:

        猜你喜欢
        • 2014-10-27
        • 1970-01-01
        • 2014-04-01
        • 2021-06-02
        • 1970-01-01
        • 2022-01-09
        • 2021-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多