Сравнение JSON

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

Различия

+ добавлено, - удалено, ~ изменено. Объекты сравниваются по ключам (порядок ключей не важен), массивы — по индексам; 1 и 1.0 считаются равными.

Работает полностью в вашем браузере. Ваши данные никуда не загружаются.

Похожие Инструменты

Просмотреть Все

Что такое Сравнение JSON?

Инструмент сравнивает два JSON-документа по структуре, а не по тексту. Он перечисляет каждое добавленное, удалённое или изменённое значение с его JSONPath, поэтому различия в пробелах, форматировании или порядке ключей игнорируются.

Как пользоваться Сравнение JSON

  1. Вставьте первый документ в поле Исходный JSON.
  2. Вставьте второй документ в поле Изменённый JSON.
  3. Прочитайте сводку и список различий (он обновляется по мере ввода).
  4. Скопируйте список различий кнопкой Копировать.

Пример

Ввод
Original: {"a":1,"b":2,"arr":[1,2]}
Modified: {"a":1.0,"c":3,"arr":[1]}
Вывод
- $.b: 2
- $.arr[1]: 2
+ $.c: 3

Сводка: добавлено — 1, удалено — 2, изменено — 0. 1 и 1.0 равны.

Когда использовать Сравнение JSON

Используйте для сравнения ответов API между средами, версий конфигов или снимков тестов. Если порядок элементов массива неважен или нужны изменения на уровне строк текста, лучше подойдёт текстовое сравнение.

Как работает Сравнение JSON

Оба ввода разбираются строгим JSON-парсером и обходятся параллельно. Объекты сравниваются по ключам независимо от порядка; ключи, которые есть только в исходном документе, считаются удалёнными (-), только в изменённом — добавленными (+). Массивы сравниваются по позициям, поэтому вставка элемента в начало покажет все последующие элементы как изменённые. Скалярные значения другого типа или значения считаются изменёнными (~ старое → новое); числа сравниваются численно, поэтому 1 и 1.0 равны, а большие целые сравниваются точно.

Распространенные Случаи Использования

  • Сравнение ответов API на staging и в продакшене
  • Просмотр изменений между двумя версиями конфига
  • Проверка того, что изменилось в снимке теста
  • Проверка миграций данных

Примечание по Безопасности

Всё выполняется локально в вашем браузере: вставленный код никуда не загружается.

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

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

Нет, объекты сравниваются по ключам.

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

По индексам. Перемещение элементов меняет позиции, на которых они сравниваются.

Равно ли 1 значению 1.0?

Да, числа сравниваются по значению.

Что сделать дальше

Сравнение изображений
Сравните два изображения слайдером «до/после», рядом или картой разницы пикселей: изменения выделяются красным, а доля расхождений показана в процентах.
Калькулятор разницы дат
Считайте дни между двумя датами или моментами времени: разбивка на годы, месяцы и дни, итоги в неделях, часах, минутах и секундах, режим с включением конечной даты.
JSON в TypeScript
Создавайте интерфейсы или псевдонимы типов TypeScript по образцу JSON: необязательные ключи, объединения с null и вложенные типы, выведенные из массивов. Бесплатно и приватно.
JSON в структуру Go
Превращайте JSON в структуры Go с экспортируемыми именами полей, тегами json, указателями для null и необязательным omitempty. Вложенные объекты и массивы. Бесплатно.
JSON в Python
Преобразуйте JSON в классы dataclass или TypedDict на Python с аннотациями типов, полями Optional и вложенными классами в порядке зависимостей. Бесплатно, в браузере.
Экранирование строк
Один инструмент для экранирования и обратного преобразования строк для JSON, JavaScript, HTML, XML, компонентов URL, регулярных выражений, SQL, CSS и аргументов оболочки.

Другие категории