Passa al contenuto principale

4. Operations (Operazioni)

4. Operations (Operazioni)

Gli oggetti operazione (Operation Object) DEVONO avere esattamente un membro "op", il cui valore indica l'operazione da eseguire. Il suo valore DEVE essere uno tra "add", "remove", "replace", "move", "copy" o "test"; altri valori sono errori. La semantica di ciascun oggetto è definita di seguito.

Inoltre, gli oggetti operazione DEVONO avere esattamente un membro "path". Il valore di quel membro è una stringa contenente un valore JSON-Pointer [RFC6901] che fa riferimento a una posizione all'interno del documento di destinazione (Target Document) (la "posizione di destinazione", Target Location) dove viene eseguita l'operazione.

I significati degli altri membri dell'oggetto operazione sono definiti dall'operazione (vedere le sottosezioni seguenti). I membri che non sono esplicitamente definiti per l'operazione in questione DEVONO essere ignorati (cioè, l'operazione verrà completata come se il membro non definito non fosse apparso nell'oggetto).

Si noti che l'ordine dei membri negli oggetti JSON non è significativo; pertanto, i seguenti oggetti operazione sono equivalenti:

{ "op": "add", "path": "/a/b/c", "value": "foo" }
{ "path": "/a/b/c", "op": "add", "value": "foo" }
{ "value": "foo", "path": "/a/b/c", "op": "add" }

Le operazioni vengono applicate alle strutture dati rappresentate da un documento JSON, cioè dopo che si è verificato qualsiasi unescaping (vedere [RFC4627], Sezione 2.5).

Tipi di operazioni