公司有一些系统进行重构,旧系统和老系统接口需要保持完全一致,为了能够自动化测试,需要开发一个自动对比接口输出结果的功能,但是部分接口返回的json数据过于复杂,最深的有8层,既有对象,又有数组,数组里面又有对象,现在要做对比,如何保证,新旧结果中的数组里面的数据,即使顺序不一致,但是每一个对象一致时,也判定为整个数组是一致的
如下面两个json:
json1
{
"msg":"success",
"code":1,
"data":{
"isFire":0,
"basicInfoCategory":[
{
"groupId":2,
"categoryCode":"CarSummaryInfo",
"sort":0,
"categoryName":"综述"
},
{
"groupId":4,
"categoryCode":"CheckDefectInfo",
"sort":1,
"categoryName":"车况"
},
{
"groupId":6,
"categoryCode":"CarBasicInfo",
"sort":2,
"categoryName":"基本"
},
{
"groupId":7,
"categoryCode":"ProcedureInfo",
"sort":3,
"categoryName":"手续"
},
{
"groupId":8,
"categoryCode":"ConfigureInfo",
"sort":4,
"categoryName":"配置"
}
]
}
}
和下面这个json2
{
"msg":"success",
"code":1,
"data":{
"isFire":0,
"basicInfoCategory":[
{
"groupId":6,
"categoryCode":"CarBasicInfo",
"sort":2,
"categoryName":"基本"
},
{
"groupId":7,
"categoryCode":"ProcedureInfo",
"sort":3,
"categoryName":"手续"
},
{
"groupId":2,
"categoryCode":"CarSummaryInfo",
"sort":0,
"categoryName":"综述"
},
{
"groupId":4,
"categoryCode":"CheckDefectInfo",
"sort":1,
"categoryName":"车况"
},
{
"groupId":8,
"categoryCode":"ConfigureInfo",
"sort":4,
"categoryName":"配置"
}
]
}
}
数组中的对象顺序不一致,但其实每一个对象的值都是一样的,大神们有什么思路,或者方案
最重要的要求就是,如果是数组中某个对象的值不一致,那需要定位到数组中的位置索引