Сравнение JSON / Diff + Patch

Сравнивайте два документа JSON семантически прямо в браузере и создавайте патч на основе различий.

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

Обработка выполняется исключительно в браузере без отправки файлов на сервер
Режимы с учетом массивов уменьшают шум при проверке
Экспорт в форматах JSON Patch и JSON Merge Patch
Все остается в сеансе вашего браузера. Ничего не загружается.

Рекомендуемый рабочий процесс

  1. Для приведения структуры к единообразному виду сначала очистите или отсортируйте файлы с помощью инструментов JSON Formatter или JSON Key Sorter.
  2. Вставьте или загрузите левый и правый документы JSON, затем нажмите «Сравнить».
  3. Выберите режим сравнения массивов, ключи сопоставления, числовой допуск и правила путей в соответствии с целями анализа.
  4. Изучите сводку, список измененных путей, дерево различий и экспортируемые файлы патчей.

Пример

Этот пример показывает, как с помощью ключей сопоставления, числового допуска и правил путей можно изолировать такие различия, как измененный порядок элементов в массиве, метки времени, микроскопические отклонения чисел с плавающей запятой и один добавленный элемент.

Before

Ввод
{
  "orderId": "A-1001",
  "updatedAt": "2026-04-16T08:00:00Z",
  "customer": {
    "name": "Acme Corp",
    "tags": ["vip", "beta"]
  },
  "items": [
    {
      "sku": "A-1",
      "qty": 2,
      "price": 10
    },
    {
      "sku": "B-2",
      "qty": 1,
      "price": 4.5
    }
  ],
  "summary": {
    "currency": "USD",
    "total": 24.5
  }
}

After

Ввод
{
  "orderId": "A-1001",
  "updatedAt": "2026-04-16T08:05:00Z",
  "customer": {
    "name": "Acme Corporation",
    "tags": ["beta", "vip"]
  },
  "items": [
    {
      "sku": "B-2",
      "qty": 1,
      "price": 4.5
    },
    {
      "sku": "A-1",
      "qty": 2,
      "price": 10.0001
    },
    {
      "sku": "C-3",
      "qty": 1,
      "price": 7
    }
  ],
  "summary": {
    "currency": "USD",
    "total": 24.5001
  }
}

Что демонстрирует данный пример

Этот пример показывает, как с помощью ключей сопоставления, числового допуска и правил путей можно изолировать такие различия, как измененный порядок элементов в массиве, метки времени, микроскопические отклонения чисел с плавающей запятой и один добавленный элемент.

Как сравнивать

  1. Вставьте или загрузите левый и правый документы JSON.
  2. Выберите строгий режим, игнорирование порядка, мультимножество или сопоставление по ключам, затем добавьте нужные правила путей.
  3. Запустите сравнение или воспользуйтесь сочетанием клавиш. Если вам нужно просто проверить синтаксис, выполните сначала валидацию.
  4. По завершении скопируйте или скачайте измененные пути, патч, merge patch или отчет.

Что можно сделать

  • Сравнивайте JSON семантически, а не построчно.
  • Сопоставляйте элементы массивов по ключам, например id, sku или code.
  • Игнорируйте пути, выбирайте пути или применяйте правила сравнения для отдельных путей.
  • Используйте числовой допуск, чтобы сгладить крошечные различия чисел с плавающей точкой.
  • Экспорт JSON Patch, JSON Merge Patch, измененных путей и отчета в формате Markdown.
  • Сворачивайте неизмененные узлы и переходите непосредственно к нужному пути.

Правила сравнения и результаты

  • Обработка данных выполняется полностью в браузере. Файлы никуда не отправляются.
  • Поддерживаются строгий режим сравнения массивов, без учета порядка, мультимножество и сопоставление по ключам.
  • Правила путей поддерживают параметры ignore (игнорирование), strict (строгое соответствие), ignore-order (без учета порядка), multiset (мультимножество), match-keys (сопоставление ключей) и tolerance (допуск).
  • Числовой допуск применяется только к числам.
  • При необходимости комментарии можно удалить перед разбором.
  • При больших объемах входных данных сначала отображается сводка, а автоматическое сравнение может быть отключено.

FAQ

Можно ли сравнивать массивы объектов по ключу?

Да. Используйте режим сопоставления по ключам (Match by key(s)) и укажите ключи, например id или sku. Вы также можете переопределить это правило для конкретного пути.

Как игнорировать временные метки или идентификаторы запросов?

Добавьте их в список игнорируемых путей (Ignore paths) или используйте правило путей, если исключение должно применяться только к определенной ветке дерева.

Можно ли сохранять порядок элементов в массиве для одних частей и игнорировать для других?

Да. Используйте правила путей, чтобы включать ignore-order, multiset или match-keys только там, где это нужно.

Поддерживается ли JSON с комментариями?

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

Что-нибудь загружается на сервер?

Нет. Сравнение, нормализация и экспорт выполняются локально в вашем браузере.

Что можно экспортировать?

JSON Patch, JSON Merge Patch, измененные пути и отчет в формате Markdown.