Сравнение JSON, XML и текста (diff)
Сравнение двух версий JSON, XML или текста: добавленные, удалённые и изменённые поля с путями и номерами строк.
Данные обрабатываются в браузере и никуда не отправляются
Было (слева)
Стало (справа)
Различия
Здесь появится результат
Введите данные слева - результат появится сразу
Как пользоваться
Вставьте две версии - слева «было», справа «стало» - различия появляются сразу. Формат определяется автоматически (JSON, XML или обычный текст), его можно задать вручную. Для JSON и XML сравнение идёт по смыслу, а не по символам: порядок ключей, пробелы и переводы строк не считаются различиями, а каждое различие показано с путём ($.items[1].price или /order/item[2]/@qty), старым и новым значением и номером строки. Текст сравнивается построчно, как git diff.
Для массивов JSON выберите режим: «По номерам» сравнивает элементы по позиции, «Без порядка» - как набор (удобно для списков, у которых порядок не важен). Для текста можно игнорировать различия в пробелах.
Частые ошибки
Вот что чаще всего сбивает при сравнении данных:
Порядок ключей - не различие
В JSON порядок ключей в объекте не важен, поэтому два документа с разным порядком ключей считаются одинаковыми. Если порядок для вас значим (например, подпись считается по тексту), сравнивайте как текст.
Массивы: по номеру или без порядка
Если в одном списке добавили элемент в начало, режим «По номерам» покажет изменения во всех элементах: все сдвинулись. Режим «Без порядка» найдёт только реально добавленный элемент.
Число и строка - разные значения
1 и "1" - разные значения, а 1 и 1.0 - одинаковые. Если интеграция вдруг стала присылать числа строками, это покажется как изменение типа.
В XML порядок разных элементов не учитывается
Одноимённые элементы сопоставляются по порядку (item[1], item[2]), а разные элементы между собой - независимо от того, кто идёт раньше. Пробелы, комментарии и порядок атрибутов не влияют на результат.
Пробелы и переводы строк в тексте
При построчном сравнении лишний пробел или другой перевод строки (Windows и Unix) выглядят как изменение всей строки. Включите «Игнорировать пробелы», чтобы увидеть только смысловые правки.
Разный формат форматирования
Если один JSON отформатирован, а другой записан в одну строку, текстовое сравнение покажет всё как различие. Выбирайте формат JSON или XML: структура сравнится без учёта форматирования.
Частые вопросы
Отправляются ли мои данные на сервер?
Нет - 100%. Сайт целиком статический, у него нет серверной части. Сравнение выполняется в вашем браузере.
Чем сравнение JSON лучше обычного текстового diff?
Обычный diff видит только строки: другой порядок ключей или форматирование - это «различия». Сравнение JSON понимает структуру: показывает, какое именно поле добавлено, удалено или изменено, и игнорирует форматирование.
Как сравнить ответы API до и после изменения?
Вставьте ответ старой версии слева, новой справа, выберите «Без порядка» для массивов, если порядок элементов нестабилен. Список различий покажет добавленные и удалённые поля и изменённые значения.
Можно ли сравнить XML с разным оформлением?
Да: отступы, переводы строк, комментарии и порядок атрибутов не учитываются. Сравниваются имена элементов, атрибуты и текст.
Как работает построчное сравнение текста?
Используется алгоритм Майерса - тот же принцип, что в git diff: находится наибольшая общая последовательность строк, а всё остальное помечается как добавленное или удалённое. Длинные неизменённые участки сворачиваются.
Что делать, если тексты очень большие?
Сравнение быстро работает на десятках тысяч строк с небольшими правками. Если тексты почти целиком различаются, подробный разбор не строится и инструмент сообщает об этом.
Можно ли скачать результат?
Да: кнопки «Копировать» и «Скачать» под результатом выгружают список различий в текстовом виде: + добавлено, - удалено, ~ изменено.
Похожие инструменты
Курс «Проектирование API и интеграций»
Глубокое погружение в REST, gRPC, SOAP, проектирование баз данных и брокеры сообщений (Kafka, RabbitMQ). Делегирование рутины нейросетям (ИИ). Перестанете бояться технических собеседований и начнете говорить с разработчиками на одном языке. Курс собран так, чтобы пробить зарплатный потолок и вырасти в грейде - ученики тому подтверждение.
Перейти к курсу на Stepik