Перейти к содержимому

Утилита для JSON

JSON Diff

Сравнение двух JSON в соседних панелях с выделением различий и точными числами.

Заполните обе стороны или откройте локальные файлы.

Строгий JSON: до 1 МиБ UTF-8, 128 уровней и 100 000 узлов.

Строгий JSON: до 1 МиБ UTF-8, 128 уровней и 100 000 узлов.

О формате и использовании

JSON Diff сравнивает структуру и значения строгого JSON, включая корневые скаляры. Пробелы и порядок ключей объектов не влияют на равенство. Строки и ключи декодируются без Unicode-нормализации; типы значений различаются.

Как использовать

  1. Вставьте исходный и изменённый JSON или откройте локальные .json/.txt в UTF-8, включая начальный BOM. Замена непустого поля требует подтверждения. Ошибка чтения сохраняет ввод; синтаксически неверный файл можно исправить в поле.
  2. Проверка выполняется через 300 мс. Нажмите «Сравнение», чтобы увидеть JSON в двух панелях: красным отмечены удалённые и прежние значения, зелёным — добавленные и новые. Строки выровнены, прокрутка синхронизирована; стрелки переходят между изменениями. Кнопка «Ввод JSON» возвращает исходные тексты для редактирования. Общие контейнеры сравниваются рекурсивно; добавление, удаление поддерева или смена типа дают одну запись. Ключи сортируются обычным сравнением строк JavaScript, индексы идут по возрастанию.
  3. Каждая сторона ограничена 1 МиБ UTF-8, глубиной 128 и 100 000 узлами значений, включая контейнеры. Отчёт — до 1000 изменений и 4 МиБ UTF-8. При превышении сравнение останавливается, экспорт недоступен; частичный отчёт не выдаётся.
  4. Copy и Download сохраняют один полный отчёт json-diff.txt с LF, без BOM и конечного переноса. Значения представлены компактным JSON с исходными числами и escapes. Reset очищает обе стороны после подтверждения.

Частые вопросы

Как сравниваются числа и порядок ключей?

Числа сравниваются точно по десятичному значению: 1, 1.0 и 1e0 равны, как и 0 и -0. Большие соседние целые не склеиваются. Порядок ключей и форматирование не влияют на результат; порядок элементов массивов влияет.

Как сравниваются массивы?

Строго по позициям с индексами от нуля. Вставка в начало может дать несколько изменений. Поиск перемещений и сопоставление по id не выполняются.

Почему повторяющиеся ключи блокируют сравнение?

Дубликаты делают сравнение неоднозначным. Имена проверяются после декодирования escapes внутри каждого объекта; ошибка указывает повторный ключ. Это ограничение JSON Diff; Formatter продолжает сохранять дубликаты.

Какие форматы и операции доступны?

Только строгий JSON и читаемый текстовый отчёт. Панели показывают нормализованное форматирование и порядок ключей, не изменяя ввод. На узких экранах они располагаются друг под другом. Нет JSONC/JSON5, JSON Schema, merge, JSON Patch или загрузки по URL. Тексты, имена файлов и отчёт остаются в памяти вкладки, без сети, URL и storage.

Следующий шаг