Генератор и применение JSON Patch

Генерируйте JSON Patch по RFC 6902 между двумя документами, применяйте патч к источнику или выполняйте merge-патч по RFC 7386 — целиком в вашем браузере.

Генератор JSON Patch работает целиком в вашем браузере. Документы и патчи, которые вы вставляете, сравниваются и применяются на вашем устройстве и никогда не загружаются в ArrayKit.

Открыть инструмент сравнения JSON

Об инструменте Генератор JSON Patch

Генератор JSON Patch превращает разницу между двумя документами JSON в аккуратный массив операций RFC 6902 — шаги add, remove, replace, move и copy, которые преобразуют источник в цель. Переключитесь в режим применения, чтобы прогнать патч против исходного документа и увидеть точный результат, где каждая операция проверяется, поэтому плохая операция или проваленный тест ловятся, а не пропускаются молча. Третий режим применяет JSON Merge Patch по RFC 7386, где значение null удаляет ключ, а объекты сливаются ключ за ключом. Он создан для разработчиков, подключающих PATCH-эндпоинты, синхронизирующих конфигурацию или просматривающих изменения API. Ваш источник, цель и патч обрабатываются на вашем устройстве и никогда не покидают браузер.

Возможности

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

  1. Выберите «Генерировать», чтобы сравнить два документа, «Применить патч», чтобы прогнать патч RFC 6902, или «Merge-патч» для RFC 7386
  2. Вставьте исходный JSON слева
  3. Вставьте целевой документ, массив патча или merge-патч справа
  4. Прочитайте сгенерированные операции или пропатченный результат, затем скопируйте или скачайте его

Пример

Ввод

source: {"active":true,"roles":["admin"]}
target: {"active":false,"roles":["admin","editor"]}

Результат

[
  { "op": "replace", "path": "/active", "value": false },
  { "op": "add", "path": "/roles/1", "value": "editor" }
]

«Генерировать» выдаёт операции RFC 6902, которые превращают источник в цель.

Частые ошибки и устранение неполадок

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

Что такое JSON Patch по RFC 6902?
RFC 6902 — это формат, описывающий изменения документа JSON как упорядоченный массив операций — add, remove, replace, move, copy и test — каждая из которых нацелена на путь JSON Pointer. Применение массива к источнику даёт цель.
Чем JSON Merge Patch (RFC 7386) отличается от JSON Patch (RFC 6902)?
Merge-патч сам по себе является объектом JSON, отражающим цель: присутствующие ключи задаются, значение null удаляет ключ, а массивы и скаляры заменяются целиком. Он проще, но не может перемещать значения или редактировать отдельные элементы массива так, как операции RFC 6902.
Как сгенерировать патч из двух документов JSON?
Оставайтесь на «Генерировать», вставьте оригинал слева и изменённую версию справа, и инструмент вычислит минимальный массив операций RFC 6902. Сравнение игнорирует порядок ключей, поэтому переставленные поля не создают ложных операций.
Почему мой патч не применился?
Операции проверяются против источника. Частые причины — путь, которого нет, для remove или replace, операция test со значением, которое не совпадает, или недопустимое имя операции. Инструмент показывает конкретную ошибку, чтобы вы исправили эту операцию.
Действительно ли merge-патч удаляет ключ с помощью null?
Да. В RFC 7386 свойство, установленное в null, указывает слиянию удалить этот ключ из результата. Чтобы сохранить настоящий null, вместо этого нужно использовать операцию replace из RFC 6902.
Загружаются ли мои документы JSON и патчи куда-либо?
Нет. Генератор, применение патча и движок merge-патча — всё работает локально в вашем браузере. Данные вашего источника, цели и патча обрабатываются на вашем устройстве и никогда не отправляются в ArrayKit.

Связанные инструменты

Все инструменты ArrayKit