Java 从JSON中的多值元素中筛选单个元素

Java 从JSON中的多值元素中筛选单个元素,java,json,jackson,rest-assured,Java,Json,Jackson,Rest Assured,在测试中,我需要比较预期的JSON响应和实际的JSON响应。但是JSON响应受角色的限制。所以我需要在比较时排除某些字段。 下面是JSON,我想从中过滤出两个内容。 1.公司ID 2.地位 { userId=dg4d6g4dg45-rgdre-543-dfg, userName=test123, effectives=[ { companyId=345634-54-547-74, companyName=xyz, roleId=685-34586349

在测试中,我需要比较预期的JSON响应和实际的JSON响应。但是JSON响应受角色的限制。所以我需要在比较时排除某些字段。 下面是JSON,我想从中过滤出两个内容。
1.公司ID 2.地位

{
userId=dg4d6g4dg45-rgdre-543-dfg,
userName=test123,
effectives=[  
   {  
     companyId=345634-54-547-74,
     companyName=xyz,
     roleId=685-345863490-634,
     roleName=This is the test Role
  },
  {  
     companyId=345634-54-547-74,
     companyName=xyz,
     roleId=685-345863490-634,
     roleName=This is the test Role
  }
],
status=Active
}
你能告诉我如何做到这一点吗。
我探索了SimpleBeanPropertyFilter的filterOutAllExcep方法,但接下来我必须找出逻辑来记住所有应该包含的字段。

我想我已经找到了解决方法。 我正在使用对象映射器,并将数据模型转换为映射。 然后在映射上迭代并删除字段。 平面过滤是直接的,但必须为嵌套字段设置一些逻辑

        // Convert the DataModel into a Map object
        ObjectMapper mapper = new ObjectMapper();
        Map mainObjectMap = mapper.convertValue(object, Map.class);

我想我已经找到了解决办法。 我正在使用对象映射器,并将数据模型转换为映射。 然后在映射上迭代并删除字段。 平面过滤是直接的,但必须为嵌套字段设置一些逻辑

        // Convert the DataModel into a Map object
        ObjectMapper mapper = new ObjectMapper();
        Map mainObjectMap = mapper.convertValue(object, Map.class);

是否使用对象映射器并映射到类?如果是,您可以忽略不需要的元素,只需不在类中定义它们,并将@JsonIgnoreProperties(ignoreUnknown=true)添加到class.IMO正确的方法是对每个角色进行单独的测试。我不认为你会有两个非常相似的JSON实体是一个问题。@PatrickStephen-我正在使用一个对象映射器,但我不想在数据模型类中添加忽略注释。我想在运行时这样做。您是否使用对象映射器并映射到类?如果是,您可以忽略不需要的元素,只需不在类中定义它们,并将@JsonIgnoreProperties(ignoreUnknown=true)添加到class.IMO正确的方法是对每个角色进行单独的测试。我不认为你会有两个非常相似的JSON实体是一个问题。@PatrickStephen-我正在使用一个对象映射器,但我不想在数据模型类中添加忽略注释。我想在运行时这样做。