4. Operations (Operationen)
4. Operations (Operationen)
Operationsobjekte (Operation Object) MÜSSEN genau ein "op"-Mitglied haben, dessen Wert die auszuführende Operation angibt. Sein Wert MUSS einer von "add", "remove", "replace", "move", "copy" oder "test" sein; andere Werte sind Fehler. Die Semantik jedes Objekts ist unten definiert.
Zusätzlich MÜSSEN Operationsobjekte genau ein "path"-Mitglied haben. Der Wert dieses Mitglieds ist eine Zeichenkette, die einen JSON-Pointer-Wert [RFC6901] enthält, der auf einen Ort im Zieldokument (Target Document) (die "Zielposition", Target Location) verweist, an dem die Operation ausgeführt wird.
Die Bedeutungen anderer Operationsobjektmitglieder werden durch die Operation definiert (siehe die Unterabschnitte unten). Mitglieder, die für die betreffende Operation nicht explizit definiert sind, MÜSSEN ignoriert werden (d.h., die Operation wird abgeschlossen, als ob das undefinierte Mitglied nicht im Objekt erschienen wäre).
Beachten Sie, dass die Reihenfolge der Mitglieder in JSON-Objekten nicht signifikant ist; daher sind die folgenden Operationsobjekte äquivalent:
{ "op": "add", "path": "/a/b/c", "value": "foo" }
{ "path": "/a/b/c", "op": "add", "value": "foo" }
{ "value": "foo", "path": "/a/b/c", "op": "add" }
Operationen werden auf die durch ein JSON-Dokument dargestellten Datenstrukturen angewendet, d.h. nachdem jegliches Unescaping (siehe [RFC4627], Abschnitt 2.5) stattgefunden hat.