4. Operations
4. Operations
Les objets d'opération (Operation Object) DOIVENT avoir exactement un membre "op", dont la valeur indique l'opération à effectuer. Sa valeur DOIT être l'une des suivantes: "add", "remove", "replace", "move", "copy" ou "test"; les autres valeurs sont des erreurs. La sémantique de chaque objet est définie ci-dessous.
De plus, les objets d'opération DOIVENT avoir exactement un membre "path". La valeur de ce membre est une chaîne contenant une valeur JSON-Pointer [RFC6901] qui référence un emplacement dans le document cible (Target Document) (l'"emplacement cible", Target Location) où l'opération est effectuée.
Les significations des autres membres de l'objet d'opération sont définies par l'opération (voir les sous-sections ci-dessous). Les membres qui ne sont pas explicitement définis pour l'opération en question DOIVENT être ignorés (c'est-à-dire que l'opération se terminera comme si le membre non défini n'apparaissait pas dans l'objet).
Notez que l'ordre des membres dans les objets JSON n'est pas significatif; par conséquent, les objets d'opération suivants sont équivalents:
{ "op": "add", "path": "/a/b/c", "value": "foo" }
{ "path": "/a/b/c", "op": "add", "value": "foo" }
{ "value": "foo", "path": "/a/b/c", "op": "add" }
Les opérations sont appliquées aux structures de données représentées par un document JSON, c'est-à-dire après tout échappement (voir [RFC4627], Section 2.5).