ENRU

Сравнение JSON

Я вижу, что изменилось. Зачем — не спрашиваю.

Исходный

Сюда — исходный.

Вставь, открой или перетащи файл.

Изменённый

Сюда — изменённый.

Вставь, открой или перетащи файл.

Изменения

Два документа на входе. Один вердикт на выходе.

Порядок ключей не в счёт. Числа сравниваются по точному значению: 1.0 = 1.00. Ctrl+Enter — сравнить.

Я сравниваю значения, а не чувства.
— JSON Statham
Жду JSON.
слева 0 Б · справа 0 БAPI

Вставь два JSON — получишь каждое различие в виде пути: добавлено, удалено, изменено. Порядок ключей не в счёт. Значения — да.

Как это работает

  1. Вставь исходный JSON слева, изменённый справа или перетащи два файла.
  2. Нажми Ctrl/Cmd+Enter.
  3. Листай изменения клавишами n и p; скопируй список или скачай отчёт.

Как считаются изменения

Объекты сравниваются по ключам, в любом порядке. Элементы массивов сопоставляются друг с другом с сохранением порядка: вставленный в начало элемент виден одним добавлением. Числа — по точному десятичному значению, без плавающей точки. Пробелы не в счёт.

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

Порядок ключей считается различием?

Нет. Объекты сравниваются по ключам, поэтому {"a":1,"b":2} и {"b":2,"a":1} идентичны. Порядок элементов массива — считается.

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

Элементы сопоставляются по порядку, поэтому вставленный в начало элемент виден одним добавлением в /…/0, а следующие за ним не сдвигаются. Очень большие массивы (больше 1 000 000 пар элементов) сравниваются по индексам.

Что за пути вида /team/0/callsign?

JSON Pointer (RFC 6901) — адрес значения внутри документа. Каждый сегмент — ключ или индекс массива; ~ записывается как ~0, а / — как ~1.

Числа сравниваются точно?

Да, по десятичному значению, без округления до float: 12345678901234567890 и 12345678901234567891 — разные числа.

Другие инструменты

Горячие клавиши

Везде
Ctrl+EnterГлавное действие страницы
Ctrl+OОткрыть файл
Ctrl+SСкачать результат
F8 / eК ошибке
/Фокус в поле ввода
qЕщё цитату
?Эта справка
EscЗакрыть
Сравнение
n / pСледующее / предыдущее изменение
xПоменять стороны

Клавиши вроде q, n, p работают, когда курсор не в редакторе.