Sări la conținut
Complet local

Aplicator de JSON Patch

Aplicați un JSON Patch RFC 6902 (sau un merge patch RFC 7396) la un document JSON.

Intrare
Patch (JSON)
Ieșire

Aplicator de JSON Patch

Lipiți un document JSON și un patch, iar acest instrument aplică patch-ul și returnează documentul rezultat. Suportă atât JSON Patch RFC 6902 — array-ul standard de operații add, remove, replace, move, copy și test — cât și JSON Merge Patch RFC 7396, formatul mai simplu "doar descrieți forma pe care o doriți" utilizat de multe API-uri REST pentru cererile PATCH.

Înainte ca orice să se execute, patch-ul este verificat pentru probleme structurale: un nume de operație necunoscut, un "path" lipsă sau deformat, o "value" lipsă pe add/replace/test sau un "from" lipsă pe move/copy — totul este detectat dinainte și rapotat cu indicele exact al operației, în loc să eșueze pe parcurs. După ce un patch trece această verificare, opțiunea on-error decide ce se întâmplă dacă o operație individuală eșuează în continuare la momentul aplicării (un cale care nu mai există, un test care nu se potrivește): opriți la prima eroare și păstrați ceea ce s-a aplicat deja, sau ignorați și continuați. Porniți urmărirea pas cu pas pentru a vedea documentul după fiecare operație — neprețuită atunci când un patch de nouă etape face ceva neașteptat la pasul șase. Rularea de test calculează totul fără a modifica ieșirea, așa că puteți verifica dacă un patch este sigur înainte de a-i încredința.

Căile JSON Pointer urmează RFC 6901 exact, inclusiv tokenul de anexare a array-ului "-" și scăpările ~0 / ~1 pentru "~" și "/" din cadrul unei chei. Move și copy citesc sursa cu "from" și scriu cu "path"; test compară structural, ignorând ordinea cheilor obiectului. Ieșirea poate fi indentată pentru lizibilitate sau compactată pentru a o lipi înapoi într-un apel API, iar rezumatul raportează câte operații au fost aplicate, au eșuat sau au fost ignorate.

Totul se execută local în browser-ul dvs. — documentul și patch-ul nu sunt niciodată trimise nicăieri, deci este sigur să le utilizați cu sarcini API reale sau fișiere de configurare. Copiați rezultatul, descărcați-l ca fișier .txt sau trimiteți-l direct înapoi la intrare pentru a aplica un alt patch.

FAQ

Care este diferența între JSON Patch și JSON Merge Patch?
JSON Patch (RFC 6902) este o listă explicită de operații — adăugați aceasta, eliminați acea, mutați aceea aici — deci poate exprima modificări precise cum ar fi reordonarea unui array. JSON Merge Patch (RFC 7396) este doar un obiect JSON parțial care descrie noua formă; o cheie setată la null o șterge, orice altceva o suprascrie. Merge patch este mai simplu de scris manual, dar nu poate exprima edițiile de array sau "ștergeți această cheie" versus "setați-o la null" fără ambiguitate.
Ce se întâmplă dacă o operație eșuează pe parcurs?
Cu "opriți la prima eroare", operațiile deja aplicate rămân aplicate și restul sunt ignorate — urmărirea arată exact unde s-a oprit. Cu "ignorați și continuați", fiecare operație este încercată și doar cele care au eșuat sunt lăsate în afara rezultatului.
Ce exact face rularea de test?
Rularea de test validează patch-ul și simulează fiecare operație, deci urmărirea arată exact ce s-ar întâmpla, dar caseta de ieșire arată în continuare documentul dvs. original și intact. Nimic nu este "rescris" nicăieri în instrumentul unui browser — este o modalitate de a previzualiza efectul unui patch înainte de a-l folosi.
Este patch-ul validat înainte de a fi aplicat?
Da. Un nume de operație necunoscut, o cale care nu este un JSON Pointer valid, sau un câmp "value"/"from" lipsă sunt toate detectate înainte ca orice operație să se execute, și eroarea numește indicele operației pentru a o putea găsi într-un patch lung.
JSON-ul meu este trimis undeva?
Nu. Atât documentul cât și patch-ul sunt procesate în întregime în browserul dvs. și nu părăsesc niciodată dispozitivul dvs.