Описание инструмента
О Сравнение JSON
Инструмент сравнения JSON сопоставляет два документа по структуре, а не по тексту, поэтому вы видите изменения в данных, а не в форматировании.
Вставьте исходный JSON с одной стороны и изменённый с другой — сравнение сразу обновится и превратится в таблицу добавленных, удалённых и изменённых значений с путём к каждому из них.
Как пользоваться JSON Diff
- Вставьте исходный документ в первое поле, а изменённый — во второе.
- Посмотрите на счётчики сверху в формате +N -N ~N, чтобы оценить масштаб правок.
- Пробегитесь по таблице результатов: тип изменения, путь, значение до, значение после.
- Пройдите по пути вида a.b[2] обратно в исходный файл: ключи соединяются точками, а элементы массива указываются индексом.
Когда это пригодится
- Сравнить конфигурацию двух окружений, например JSON-настройки стенда и продакшена.
- Разобрать, как изменился ответ API между двумя версиями сервиса, прежде чем полагаться на новую структуру.
- Выяснить, что на самом деле сдвинулось внутри package-lock.json или другого сгенерированного манифеста зависимостей.
- Проверить, что изменил инструмент после повторной сериализации файла инфраструктуры как кода или манифеста Kubernetes.
Как записываются пути и типы изменений
Каждая строка указывает на одно место в документе и записана так, как вы читали бы это значение в коде, — чтобы его было легко найти в исходном файле.
- Добавлено: путь существует только в изменённом документе, и колонка «значение после» показывает новое значение.
- Удалено: путь существует только в исходном документе, и колонка «значение до» показывает то, что там было.
- Изменено: путь есть с обеих сторон, но значения разные, поэтому заполнены обе колонки.
- Путь вида a.b[2] означает ключ b внутри объекта a, а затем элемент с индексом 2 в этом массиве.
Частые вопросы: Сравнение JSON
- Почему переформатирование файла не даёт никаких различий?
- Потому что обе стороны сначала разбираются парсером. Отступы, порядок ключей и переводы строк не входят в разобранную структуру, поэтому в различиях они не появляются никогда.
- Почему вставка одного элемента массива помечает изменённым всё, что идёт после него?
- Массивы сравниваются по индексу. Вставка сдвигает каждый последующий элемент на новую позицию, и каждая сдвинутая позиция попадает в отчёт как изменение. Это свойство позиционного сравнения, а не дефект.
- Что будет, если одна из сторон — не корректный JSON?
- Оба входа должны успешно разобраться. Если хотя бы одна сторона повреждена, вместо сравнения показывается ошибка разбора.
- Что показывается, когда документы совпадают?
- Инструмент прямо сообщает, что структурных различий нет, вместо пустого результата, который легко принять за сбой.
- Загружаются ли мои данные куда-либо?
- Нет. Разбор и сравнение выполняются локально в браузере библиотекой microdiff, поэтому вставленное вами не уходит ни на wetool.site, ни на любой другой сервер.
Структурное сравнение JSON против текстового
Текстовое сравнение работает со строками символов, поэтому переставленные ключи, переход с двух пробелов на четыре или другие переводы строк показываются как различия, хотя данные идентичны, — и настоящие правки тонут в этом шуме. Структурное сравнение сначала разбирает оба документа и сообщает только смысловые различия, игнорируя порядок ключей и форматирование. Текстовое сравнение берите, когда важны точные байты, а это — когда важны только данные.
Как читать результат и не обмануться
Структурное сравнение точно отвечает на узкий вопрос, поэтому стоит понимать, о чём таблица говорит, а о чём молчит.
- Длинный список изменений, сосредоточенный в одном массиве, обычно указывает на единственную вставку или перестановку, а не на десятки независимых правок.
- Типы важны: строка 1 и число 1 — разные значения, и они попадают в отчёт как изменение.