首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略jsonassert中的特定属性/字段

忽略jsonassert中的特定属性/字段
EN

Stack Overflow用户
提问于 2019-05-23 22:05:48
回答 1查看 821关注 0票数 1

我需要通过忽略一些字段来比较两个json字符串

我目前正在使用org.SkyScreamer的JSONAssert进行比较,但不会忽略任何属性。

Json 1:

代码语言:javascript
复制
{
  "contributions": [
    [
      {
        "order" : 1,
        "contributorId" : "1980"
      }
    ]
  ]
}

Json 2:

代码语言:javascript
复制
{
  "contributions": [
    [
      {
        "order": 1,
        "contributorId" : "5789"
      }
    ]
  ]
}
代码语言:javascript
复制
ArrayValueMatcher<Object> arrValMatch1 = new ArrayValueMatcher<>(new CustomComparator(
                JSONCompareMode.NON_EXTENSIBLE,
                new Customization("contributions[0][*].contributorId",(o1, o2) -> true)));

        Customization arrayValueMatchCustomization = new Customization("contributions", arrValMatch1);
        CustomComparator customArrayValueComparator = new CustomComparator(
                JSONCompareMode.NON_EXTENSIBLE,
                arrayValueMatchCustomization);
       assertEquals(subJson1, json2, customArrayValueComparator);

我希望上面的方案能够通过。但是它失败了,因为

代码语言:javascript
复制
Exception in thread "main" java.lang.AssertionError: contributions[0][contributorId=1980]
Expected: a JSON object
     but none found
 ; contributions[0][contributorId=5789]
Unexpected: a JSON object
EN

回答 1

Stack Overflow用户

发布于 2021-01-08 03:20:39

使用*.contributorId而不是contributions[0][*].contributorId

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

https://stackoverflow.com/questions/56277056

复制
相关文章

相似问题

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