Сравнение JSON
Я вижу, что изменилось. Зачем — не спрашиваю.
Сюда — исходный.
Вставь, открой или перетащи файл.
Сюда — изменённый.
Вставь, открой или перетащи файл.
Два документа на входе. Один вердикт на выходе.
Порядок ключей не в счёт. Числа сравниваются по точному значению: 1.0 = 1.00. Ctrl+Enter — сравнить.
Я сравниваю значения, а не чувства.
Вставь два JSON — получишь каждое различие в виде пути: добавлено, удалено, изменено. Порядок ключей не в счёт. Значения — да.
Как это работает
- Вставь исходный JSON слева, изменённый справа или перетащи два файла.
- Нажми Ctrl/Cmd+Enter.
- Листай изменения клавишами 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 — разные числа.
Другие инструменты
- Форматирование JSON — 2 или 4 пробела или таб, порядок сохранён.
- Валидатор JSON — точная строка и колонка каждой ошибки.
- Base64: кодирование в браузере, без отправки.
- JSON в query-строку — массивы, вложенность и пробелы как нужно, и обратно.
- Минификация JSON — одна строка, каждый байт на счету.
- JSON в YAML — тот же порядок, те же числа, безопасные кавычки.