Инструменты
RU

Сравнение JSON онлайн

Вставьте два JSON-документа, чтобы найти все различия. Семантическое сравнение игнорирует порядок ключей и форматирование и выводит каждое изменение с его JSON-путём, а режим двух колонок подсвечивает изменённые строки.

Исходный JSON

Изменённый JSON

Конфиденциально: ваши данные обрабатываются в браузере и никуда не загружаются.

Как сравнить два JSON-файла

  1. Вставьте исходный JSON слева, а изменённый — справа, или перетащите файл на каждую из сторон.
  2. Изучите сводку и список различий: каждое добавленное, удалённое или изменённое значение показано с путём, например $.users[2].email.
  3. Прокрутите вниз до сравнения в двух колонках, чтобы увидеть изменения в контексте. Отметьте Игнорировать порядок в массивах, если порядок элементов списка не важен.

Семантическое сравнение JSON вместо текстового diff

Обычный текстовый diff сообщает об изменении всякий раз, когда ключ переместился, отличаются отступы или число записано иначе. Этот JSON diff сравнивает сами данные:

Как читать результаты сравнения

МеткаЧто означаетПуть указывает на
ДобавленоЗначение есть только в изменённом JSONего позицию в изменённом JSON
УдаленоЗначение есть только в исходном JSONего позицию в исходном JSON
ИзмененоКлюч есть в обоих документах, но значение или тип отличаютсяего позицию в изменённом JSON

В режиме двух колонок оба документа форматируются с отсортированными ключами, чтобы совпадающие строки стояли друг напротив друга; длинные неизменённые фрагменты сворачиваются, если не снять флажок Скрыть неизменённые строки.

Часто задаваемые вопросы

Важен ли порядок ключей?

Нет. Объекты JSON по определению неупорядочены, поэтому при сравнении порядок ключей игнорируется. Массивы же упорядочены — если только вы не отметите «Игнорировать порядок в массивах».

Можно ли сравнить большие JSON-файлы?

Да. Сравнение выполняется в браузере и выводит первые 200 различий с кнопкой, чтобы показать все; в режиме двух колонок отображается до 5000 строк.

Как сравнить JSON в коде?

В Python равенство проверяется так: json.loads(a) == json.loads(b). В JavaScript встроенного глубокого сравнения нет; библиотеки вроде Lodash предлагают _.isEqual(a, b). В командной строке diff <(jq -S . a.json) <(jq -S . b.json) покажет отличающиеся строки.

Загружаются ли мои данные на сервер?

Нет. Оба документа сравниваются локально в вашем браузере и никогда не покидают ваше устройство.