JSON Patch anwenden
JSON Patch anwenden nach RFC 6902: Operationen add, remove, replace, move, copy und test auf ein Dokument ausführen und Fehler je Operation sehen.
Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.
JSON Patch nach RFC 6902 verstehen
JSON Patch ist ein Format nach RFC 6902, das Änderungen an einem JSON-Dokument als Liste von Patch-Operationen beschreibt. Jede Operation hat einen Typ (add, remove, replace, move, copy oder test) und einen Pfad im Format JSON Pointer (RFC 6901), etwa /kontakt/email oder /tags/0. HTTP-APIs nutzen JSON Patch für PATCH-Anfragen, Kubernetes für kubectl patch --type=json. Mit diesem Werkzeug können Sie einen JSON Patch anwenden und JSON Patch testen, bevor er ein echtes System erreicht.
Das Protokoll zeigt jede Operation einzeln mit Ergebnis. Schlägt eine Operation fehl, etwa weil ein Pfad nicht existiert, ein Array-Index zu groß ist oder ein test einen anderen Wert findet, nennt die Meldung die Nummer und den Grund. Wie in RFC 6902 vorgeschrieben, wird der Patch dann nicht teilweise angewendet: Entweder gelingen alle Operationen oder keine. Im JSON Pointer steht ~1 für einen Schrägstrich und ~0 für eine Tilde im Schlüssel; - am Ende eines Array-Pfads hängt ein Element an.
Grenzen: Das Werkzeug wendet Patches an, erzeugt sie aber nicht aus zwei Dokumenten. Unterschiede zwischen zwei Fassungen zeigt JSON vergleichen. Zahlen werden wie in JavaScript verglichen, sehr große Ganzzahlen über 2^53 verlieren Genauigkeit.
Anleitung: JSON Patch anwenden in 4 Schritten
- Das Ausgangsdokument in „JSON-Dokument“ einfügen.
- Den Patch als Array von Operationen in „JSON Patch (RFC 6902)“ einfügen.
- Im „Protokoll“ ablesen, welche Operation erfolgreich war und wo ein Fehler auftritt.
- Das Ergebnis mit „Kopieren“ übernehmen.
Typische Anwendungsfälle
- Ein PATCH-Request mit
Content-Type: application/json-patch+jsonsoll vor dem Senden gegen echte Daten getestet werden. - Kubernetes-Ressourcen werden mit
kubectl patch --type=jsongeändert; der Patch wird vorab geprüft. - Ein fehlgeschlagener Patch aus einem Log soll nachvollzogen werden, um die fehlerhafte Operation zu finden.
- Für Tests einer eigenen Patch-Implementierung werden die Beispiele aus RFC 6902 nachgerechnet.
Häufige Fragen
Was macht die Operation test?
test prüft, ob am Pfad genau der angegebene Wert steht. Ist das nicht so, bricht der gesamte Patch ab. So lässt sich sicherstellen, dass ein Patch nur auf den erwarteten Stand angewendet wird.
Warum wird mein Patch gar nicht angewendet, obwohl nur eine Operation falsch ist?
RFC 6902 verlangt, dass ein Patch atomar wirkt: Schlägt eine Operation fehl, bleibt das Dokument unverändert. Das Protokoll zeigt, welche Operation das Problem verursacht.
Wie füge ich ein Element am Ende eines Arrays an?
Mit add und einem Pfad, der auf - endet, zum Beispiel {"op": "add", "path": "/tags/-", "value": "neu"}.
Welcher Content-Type gehört zu JSON Patch?
Für HTTP-Anfragen ist application/json-patch+json registriert. Für JSON Merge Patch nach RFC 7386 gilt dagegen application/merge-patch+json.
Was ist der Unterschied zwischen JSON Patch und JSON Merge Patch?
JSON Patch (RFC 6902) beschreibt einzelne Operationen mit Pfaden und kann Array-Elemente gezielt ändern. JSON Merge Patch (RFC 7386) ist ein Teildokument, das über das Original gelegt wird; Arrays werden dabei immer ganz ersetzt.
Wie spreche ich das letzte Element eines Arrays an?
Zum Anhängen dient /liste/-. Für ein vorhandenes Element brauchen Sie den Index, zum Beispiel /liste/2. Negative Indizes gibt es in JSON Pointer nicht.
Das könnte auch helfen
JSON minimieren
JSON auf eine Zeile verdichten: Leerraum entfernen, Zahlen exakt erhalten, optional Schlüssel sortieren.
ÖffnenJSON in CSV umwandeln
JSON-Arrays in CSV für Excel umwandeln: verschachtelte Felder als Spalten, Semikolon oder Komma.
ÖffnenCSV in JSON umwandeln
CSV in JSON umwandeln mit automatischer Trennzeichen-Erkennung und Anführungszeichen nach RFC 4180.
ÖffnenXML formatieren und prüfen
XML einrücken, minimieren und auf Wohlgeformtheit prüfen, mit Fehlerstelle in Zeile und Spalte.
ÖffnenXML in JSON umwandeln
XML in JSON umwandeln: Attribute mit Präfix, wiederholte Elemente als Arrays, Zahlen erkannt.
ÖffnenYAML in JSON umwandeln
YAML prüfen und in JSON umwandeln: Listen, Anker, Block-Strings und mehrere Dokumente.
Öffnen