首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONAssert.assertEquals:比较时忽略多个字段

JSONAssert.assertEquals:比较时忽略多个字段
EN

Stack Overflow用户
提问于 2019-01-25 23:10:38
回答 1查看 2.9K关注 0票数 1

我有以下JSON结构

代码语言:javascript
复制
{
  "name": "xyz",
  "address": {
    "street": "avenida",
    "number": "41414-44141",
    "code": "33ll",
    "moreFields": "some data"
  },
  "moreFields": "some data"
}

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

代码语言:javascript
复制
assertEquals(json1, json2,
return new CustomComparator(JSONCompareMode.NON_EXTENSIBLE,
      Customization.customization("address.code",
        (o1, o2) -> {
          return true; 
        })
    ));

从实现上看,我们提供给定制方法的正则表达式似乎被修改了,我无法得出可以满足OR条件的path参数的值。

如有任何建议,我们将不胜感激

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-03-24 00:56:16

尝尝这个

代码语言:javascript
复制
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,我不是很确定。也许你应该试着在它前面加上**.作为递归的前缀。

保重。朱利安。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54367991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档