首页 > 解决方案 > 在java中比较两个json响应

问题描述

即使我得到的响应顺序混乱,在java中比较两个json响应的最佳方法是什么?比较之后,我需要诸如键的实际响应和预期响应中的值不匹配以及响应中缺少键之类的东西,即一个属性出现在一个响应中,但没有出现在另一个响应中。

我尝试过 Json Comparator 和 MapDifference 之类的东西(在展平 HashMap 之后)。但这两个似乎不适用于我通过发送 bulkRequest 获得的响应,因为我得到的响应顺序混乱。

如果我不发送 bulkRequest,我可以使用 Json Comparator 或 MapDifference,它可以工作。

BulkRequest 的正文如下所示:

{
     "name":"ABC",
     "place":"BCD",
     "employeeContext":[
             {
                  "employeeId":"123"
             },
             {     "employeeId":"194"
             }
        ]
}

普通帖子请求的正文:

{
     "name":"ABC",
     "place":"BCD",
     "employeeContext":[
             {
                  "employeeId":"123"
             }
        ]
}

当我发送 bulkRequest 时,我会以混乱的顺序得到响应,即在一个响应中,我可能会得到 ID 为 123 的员工的详细信息作为响应列表的第一个对象,而其他员工的详细信息作为第二个对象。但在其他响应中,它可能会以相反的顺序出现。我得到的响应有嵌套的对象和嵌套的 jsonArrays。

标签: javajsonapi

解决方案


推荐阅读