Přeskočit na obsah

Aplikátor JSON Patch

Aplikujte RFC 6902 JSON Patch (nebo RFC 7396 merge patch) na JSON dokument.

Vstup
Patch (JSON)
Výstup

Aplikátor JSON Patch

Vložte JSON dokument a patch, tento nástroj patch aplikuje a vrátí výsledný dokument. Podporuje RFC 6902 JSON Patch — standardní pole operací add, remove, replace, move, copy a test — a také RFC 7396 JSON Merge Patch, jednodušší formát "popište tvar kterou chcete" používaný mnoha REST API pro PATCH požadavky.

Předtím než se spustí, patch se ověří na strukturální problémy: neznámý název operace, chybějící nebo poškozená "path", chybějící "value" u add/replace/test, nebo chybějící "from" u move/copy se všechno zachytí předem a nahlásí se s přesným indexem operace, místo aby se nezdařilo v polovině. Jakmile patch projde touto kontrolou, volba při chybě rozhodne co se stane když jednotlivá operace selhá v čase aplikace (cesta kterou již neexistuje, test kterému neodpovídá): zastavit při první chybě a ponechte co se již aplikovalo, nebo ji přeskočte a pokračujte. Zapněte trasování krok za krokem a podívejte se na dokument po každé operaci — neocenitelné když devítikroková oprava dělá něco neočekávaného v šestém kroku. Zkušební běh počítá všechno bez změny výstupu, takže si můžete zkontrolovat že patch je bezpečný předtím než mu důvěřujete.

JSON Pointer cesty sledují RFC 6901 přesně, včetně tokenu "-" pro připojení pole a escapeů ~0 / ~1 pro "~" a "/" uvnitř klíče. Move a copy čtou zdroj s "from" a píšou s "path"; test porovnává strukturálně, ignoruje pořadí klíčů objektu. Výstup lze odsadit pro čitelnost nebo zkomprimovat pro vložení zpět do volání API, a součet hlásí kolik operací se aplikovalo, selhalo nebo bylo přeskočeno.

Všechno běží lokálně ve vašem prohlížeči — dokument a patch se nikdy nikam nenahrávají, takže je bezpečné používat se skutečnými API datovými zátěžemi nebo konfiguračními soubory. Zkopírujte výsledek, stáhněte jej jako soubor .txt, nebo jej odešlete přímo zpět do vstupu pro aplikaci dalšího patche na vrch.

Časté dotazy

Jaký je rozdíl mezi JSON Patch a JSON Merge Patch?
JSON Patch (RFC 6902) je explicitní seznam operací — přidej toto, odstraň tamto, přesuň toto sem — takže může vyjádřit přesné změny jako přeuspořádání pole. JSON Merge Patch (RFC 7396) je jen částečný JSON objekt popisující nový tvar; klíč nastaven na null jej vymaže, všechno ostatní jej přepíše. Merge patch je jednodušší na ručné napsání ale nemůže vyjádřit úpravy pole nebo "smaž tento klíč" versus "nastav jej na null" bez nejasnosti.
Co se stane, když operace selže v polovině?
S "zastavit při první chybě", operace které již byly aplikovány zůstávají aplikovány a zbytek se přeskočí — součet a trasování ukazují přesně kde se zastavilo. S "přeskočit a pokračovat", každá operace se pokusí a pouze operace které selhaly se vynechají z výsledku.
Co přesně dělá zkušební běh?
Zkušební běh ověří patch a simuluje každou operaci, takže součet a trasování ukazují přesně co by se stalo, ale pole výstupu stále zobrazuje váš původní, nezměněný dokument. Nic není "zapsáno" nikde v nástroji prohlížeče — je to způsob jak si prohlédnout účinek patche předtím než mu důvěřujete.
Ověří to patch před aplikací?
Ano. Neznámý název operace, cesta která není platný JSON Pointer, nebo chybějící pole "value"/"from" se všechno zachytí před spuštěním jakékoli operace a chyba pojmenuje index operace aby jste jej mohli najít v dlouhém patchi.
Jde můj JSON někam nahrán?
Ne. Dokument i patch se zpracovávají zcela ve vašem prohlížeči a nikdy neopustí vaše zařízení.