Инструмент для разработчиков

Сравнение JSON

Сравнивайте два документа JSON по структуре, а не по тексту.

Сравнение JSON Работает на вашем устройстве
  • Работает в вашем браузере — текст никуда не отправляется
  • Без регистрации и квот, пользуйтесь бесплатно сколько угодно

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

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

Сравнивается смысл, а не символы

Оба документа разбираются и сравниваются значение за значением. Порядок ключей и пробелы не важны, потому что у объектов нет собственного порядка. Два документа, описывающие одно и то же, считаются одинаковыми, как бы по-разному они ни были записаны.

Как читать результат

Строка, начинающаяся с +, есть только во втором документе, с − — только в первом, а ~ означает разные значения в каждом, при этом показаны оба. Путь указывает место: точки для ключей объектов и квадратные скобки для позиций в массивах, так что response.items[2].price указывает точно на нужное поле.

Массивы сравниваются по позиции

Третий элемент сравнивается с третьим. Для упорядоченных данных это правильно, а для неупорядоченного набора — нет: переставленный список тех же элементов покажется множеством изменений. Если порядок в ваших данных не важен, сначала отсортируйте обе стороны.

Почему это работает локально

В данных API обычно есть токены, записи клиентов и внутренние идентификаторы. Если вставить два таких документа в стороннюю службу сравнения, всё это будет передано ей. Здесь оба документа разбираются и сравниваются на странице.

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

Сравнение JSON: вопросы и ответы

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

Нет. У объектов нет собственного порядка, поэтому перестановка ключей не считается различием.

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

По позиции. Переставленный список покажется множеством изменений, поэтому, если порядок не важен, сначала отсортируйте обе стороны.

Что означают символы?

+ — только во втором документе, − — только в первом, ~ — значения различаются.

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

Нет. Оба документа разбираются и сравниваются в браузере.