Генератор и применение 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. Ваш источник, цель и патч обрабатываются на вашем устройстве и никогда не покидают браузер.
Возможности
- Генерируйте минимальный патч RFC 6902 (add / remove / replace / move / copy) из двух документов JSON
- Применяйте массив патча к исходному документу и мгновенно видьте пропатченный результат
- Проверяет каждую операцию — неизвестные операции, проваленные тесты и неразрешимые пути сообщаются, а не пропускаются
- Применяйте JSON Merge Patch по RFC 7386, где значение null удаляет ключ
- Сравнение, не зависящее от порядка ключей, поэтому переставленные ключи никогда не порождают лишних операций
- Скопируйте патч или результат либо скачайте его как файл .json
- Живые метки «корректно / некорректно» указывают, на какой стороне синтаксическая ошибка JSON
- Всё работает в вашем браузере — документы и патчи остаются на вашем устройстве
Как использовать Генератор JSON Patch
- Выберите «Генерировать», чтобы сравнить два документа, «Применить патч», чтобы прогнать патч RFC 6902, или «Merge-патч» для RFC 7386
- Вставьте исходный JSON слева
- Вставьте целевой документ, массив патча или merge-патч справа
- Прочитайте сгенерированные операции или пропатченный результат, затем скопируйте или скачайте его
Пример
Ввод
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, которые превращают источник в цель.
Частые ошибки и устранение неполадок
- Режим применения сообщает, что патч должен быть массивом операций. — Патч RFC 6902 — это массив JSON вроде [ { "op": "add", "path": "/x", "value": 1 } ]. Оберните единственный объект операции в квадратные скобки.
- Операция remove или replace завершается ошибкой с неразрешимым путём. — Путь должен уже существовать в источнике. Проверьте на опечатку, помните, что пути начинаются со слеша, и экранируйте / и ~ в ключах как ~1 и ~0.
- Операция test проваливает весь патч. — Патчи RFC 6902 работают по принципу «всё или ничего». Проваленный тест прерывает патч, поэтому убедитесь, что проверяемое значение в точности совпадает с источником, прежде чем выполнятся следующие операции.
- Merge-патч заменил весь массив вместо редактирования одного элемента. — В RFC 7386 нет поэлементного редактирования массивов — массив в merge-патче перезаписывает весь массив. Используйте патч 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.
Связанные инструменты
- JSON Diff — Сравнение двух документов JSON со структурным различием.
- Форматировщик JSON — Форматируйте, минимизируйте и проверяйте JSON с указанием места ошибок.
- JSON Flatten — Сплющивайте вложенный JSON в ключи с точечной нотацией или разворачивайте обратно.
- Сортировка ключей JSON — Рекурсивно сортируйте ключи объектов JSON А→Я или Я→А, сохраняя массивы.
- JSON в CSV — Преобразуйте массив плоских объектов JSON в CSV.
- NDJSON в JSON — Преобразуйте NDJSON (JSON Lines) в массив JSON и обратно.
Все инструменты ArrayKit