Код Middle API-автотесты обновлено
Разница двух JSON-ответов
Условие
Напишите json_diff(a, b, ignore): список путей, где ответы различаются, отсортированный по алфавиту. ignore это список имён ключей, которые не сравниваются ни на каком уровне.
- путь корня
$, ключ$.a.b, элемент$.items[1]; - словари: ключ есть только в одном, это различие по пути ключа; общие ключи сравнивать рекурсивно;
- списки разной длины: различие по пути самого списка; одинаковой длины: поэлементно;
- разные типы или разные примитивы: различие по текущему пути.
Примеры
json_diff({"id":1,"name":"A"}, {"id":2,"name":"A"}, ["id"]) // []
json_diff({"id":1,"name":"A"}, {"id":2,"name":"B"}, []) // ["$.id", "$.name"]
json_diff({"items":[1,2]}, {"items":[1,3]}, []) // ["$.items[1]"]
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.