从JSON中的多值元素中过滤单个元素

时间:2016-01-08 01:18:46

标签: java json jackson rest-assured

在我的测试中,我需要比较预期和实际的JSON响应。但JSON响应受限于角色。所以我需要在比较时排除某些字段。 下面是JSON,我想从中筛选出2件事 1. CompanyId                                                                                                             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方法,但是我必须弄清楚要记住所有应该包含的字段的逻辑。

1 个答案:

答案 0 :(得分:0)

我想我已经找到了解决方法。 我正在使用Object Mapper并将数据模型转换为Map。 然后迭代地图并删除字段。 平面过滤很简单,但必须为嵌套字段提供一些逻辑。

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