1

我有以下 JSON 结构

{
  "name": "xyz",
  "address": {
    "street": "avenida",
    "number": "41414-44141",
    "code": "33ll",
    "moreFields": "some data"
  },
  "moreFields": "some data"
}

在我的 JUNIT 课程中,我将不得不比较两个具有上述结构的 JSON 文件。但是我想忽略字段address.numberaddress.code. 我知道我可以使用下面的代码来忽略一个字段,但是如何更改它以适应我的要求?

assertEquals(json1, json2,
return new CustomComparator(JSONCompareMode.NON_EXTENSIBLE,
      Customization.customization("address.code",
        (o1, o2) -> {
          return true; 
        })
    ));

查看实现,我们提供给自定义方法的正则表达式似乎被修改了,我无法想出path可以作为OR条件的参数的值。

任何建议都非常感谢

谢谢!

4

1 回答 1

1

尝试这个

CustomComparator comparator = new CustomComparator(
            JSONCompareMode.LENIENT,
            new Customization("address.nunber", (o1, o2) -> true),
            new Customization("address.code", (o1, o2) -> true));
JSONAssert.assertEquals(
        expectedJsonAsString,
        actualJsonAsString,
        comparator);

我不太确定Xpath。也许你应该尝试在它前面加上**.for recurve。

小心。朱利安。

于 2020-03-23T16:56:15.547 回答