У меня есть API отдыха для тестирования, и мне нужно сравнить два ответа json. Ниже вы можете найти структуру файла. Оба файла для сравнения должны содержать одинаковые элементы, но порядок может быть разным. К сожалению, имена, тип (простой, массив) и количество ключей (root, nodeXYZ) также неизвестны.
{"root": [{
"node1": "value1",
"node2": "value1",
"node3": [
{
"node311": "value311",
"node312": "value312"
},
{
"node321": "value321",
"node322": "value322"
}
],
"node4": [
{
"node411": "value411",
"node412": "value413",
"node413": [ {
"node4131": "value4131",
"node4132": "value4131"
}],
"node414": []
}
{
"node421": "value421",
"node422": "value422",
"node423": [ {
"node4231": "value4231",
"node4232": "value4231"
}],
"node424": []
}]
"node5": [
{"node51": "value51"},
{"node52": "value52"},
]
}]}
Я нашел полезную информацию в Groovy - сравните два объекта JSON (та же структура) и возвращают ArrayList, содержащий различия Получение узла из ответа Json Groovy: как мне искать json со значением ключа и находить его дочерние элементы в groovy, но я не смог объединить его в решение. Я думал, что решение может выглядеть так:
take root
get root children names
check if child has children and get their names
do it to the lowest leve child
Со всеми именами сравнение должно быть легким (я думаю) К сожалению, мне не удалось получить ключи под root