Об этом инструменте
Когда меняется конфиг, ответ API или сохранённая фикстура, быстрее всего понять, что случилось, — сделать диф. Вставьте сюда JSON до и после и получите чёткий список с путями: какие ключи добавлены, какие удалены и какие значения изменились — со старым и новым значением рядом. Вложенные объекты и массивы обходятся рекурсивно, поэтому изменение в глубине указывается точно.
Он сравнивает структуру, а не текст, поэтому переставленные ключи и пробелы не создают шума. Всё работает в браузере, и ничего не загружается.
Частые вопросы
Важен ли порядок ключей в моём JSON?
Нет. Объекты сравниваются по ключу, а не по позиции, поэтому изменение порядка ключей в объекте никогда не отобразится как различие.
Важен ли порядок элементов в массиве?
Да. Массивы сравниваются поэлементно по индексу, поэтому вставка или перестановка элемента сдвигает все последующие и отображается как множество изменений, а не как аккуратный «перемещённый» diff.
Отправляется ли мой JSON на сервер для сравнения?
Нет. Оба документа разбираются и сравниваются полностью в браузере — ничего не отправляется.
Что означают счётчики +, - и ~?
+ считает ключи и элементы, которые есть только в JSON B (добавлены), - считает те, что есть только в A (удалены), а ~ считает значения, присутствующие в обоих, но изменённые.
Что произойдёт, если одна из сторон окажется невалидным JSON?
Инструмент указывает, какая сторона (A или B) не разобралась, и переходит точно к строке и столбцу синтаксической ошибки вместо общего сообщения об ошибке.