Groovy сравнить два JSON с неизвестными именами и значениями узлов
У меня есть API для отдыха, и я должен сравнить два ответа JSON. Ниже вы можете найти структуру файла. Оба сравниваемых файла должны содержать одинаковые элементы, но порядок может быть разным. К сожалению, имена, тип (простой, массив) и количество ключей (root, nodeXYZ) также не известны.
{"root": [{
"node1": "value1",
"node2": "value1",
"node3": [
{
"node,311": "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 Response 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