Перейти до вмісту

Застосовувач JSON Patch

Застосовує JSON Patch (RFC 6902) або JSON Merge Patch (RFC 7396) до JSON-документа.

Введення
Патч (JSON)
Вихід

Застосовувач JSON Patch

Вставте JSON-документ і патч, і цей інструмент застосує патч і повернути результуючий документ. Підтримуються обидва стандарти: RFC 6902 JSON Patch — стандартний масив операцій add, remove, replace, move, copy і test — і RFC 7396 JSON Merge Patch, простіший формат «просто опишіть бажану структуру», що використовується багатьма REST API для запитів PATCH.

Перед виконанням перевіряється структура патча на наявність проблем: невідоме ім'я операції, відсутній або некоректний «path», відсутній «value» в add/replace/test або відсутній «from» в move/copy — все виявляється заздалегідь з указанням індексу операції замість збою в середині процесу. Коли патч пройде перевірку, опція «При помилці» визначає, що відбувається, якщо окрема операція все ще не застосовується (шлях більше не існує, перевірка не збігається): зупинитися на першій помилці і зберегти вже застосоване, або пропустити і продовжити. Включіть покроковий слід, щоб побачити документ після кожної операції — безцінно, коли дев'ятикроковий патч поводиться неочікувано на шостому кроці. Пробний запуск обчислює все без змінення виводу, тому ви можете перевірити безпеку патча перед застосуванням.

Шляхи JSON Pointer точно слідують RFC 6901, включаючи токен "-" для додавання в масив і екранування ~0 / ~1 для «~» і «/» всередину ключа. Move і copy читають джерело за допомогою «from» і записують за допомогою «path»; test порівнює структурно, ігноруючи порядок ключів об'єкта. Вивід може бути відформатований для зручності читання або стиснено для вставки назад у виклик API, а остаточна статистика показує, скільки операцій застосовано, не вдалось або пропущено.

Все виконується локально у вашому браузері — документ і патч ніколи не надсилаються кудись, тому безпечно використовувати з реальними API-відповідями або файлами конфігурації. Скопіюйте результат, завантажте його як файл .txt або відправте прямо назад у вхідне поле, щоб застосувати ще один патч зверху.

FAQ

У чому різниця між JSON Patch та JSON Merge Patch?
JSON Patch (RFC 6902) — це явний список операцій — додати це, видалити те, перемістити сюди — тому може виразити точні зміни, такі як переупорядкування масиву. JSON Merge Patch (RFC 7396) — це просто частковий об'єкт JSON, описуючий бажану структуру; ключ, встановлений на null, видаляє його, все інше перезаписує його. Merge patch простіше писати вручну, але не може виразити редагування масивів або розрізняти між «видалити цей ключ» та «встановити на null» однозначно.
Що трапляється, якщо операція не вдається в процесі?
При «зупинитися на першій помилці» вже застосовані операції залишаються в силі, а решта пропускаються — статистика і слід показують точно, де зупинилося. При «пропустити і продовжити» кожна операція намагається виконатися, і тільки невдалі виключаються з результату.
Що робить пробний запуск?
Пробний запуск перевіряє патч і моделює кожну операцію, тому статистика і слід показують точно, що відбудеться, але у полі виводу залишається ваш вихідний, незмінений документ. Ніщо не «записується» в інструменті браузера — це спосіб попереднього перегляду ефекту патча перед його використанням.
Чи перевіряє він патч перед застосуванням?
Так. Невідоме ім'я операції, шлях, який не є допустимим JSON Pointer, або відсутній «value»/«from» — все це перехоплюється перед запуском будь-якої операції, і помилка указує індекс операції, щоб ви змогли її знайти в довгому патче.
Мій JSON надсилається куди-небудь?
Ні. Як документ, так і патч обробляються повністю у вашому браузері і ніколи не покидають ваше пристрій.