Aller au contenu principal

3. Document Structure

3. Document Structure

Un document JSON Patch est un document JSON [RFC4627] qui représente un tableau d'objets. Chaque objet représente une opération unique à appliquer au document JSON cible (Target JSON Document).

Voici un exemple de document JSON Patch, transféré dans une requête HTTP PATCH:

PATCH /my/data HTTP/1.1
Host: example.org
Content-Length: 326
Content-Type: application/json-patch+json
If-Match: "abc123"

[
{ "op": "test", "path": "/a/b/c", "value": "foo" },
{ "op": "remove", "path": "/a/b/c" },
{ "op": "add", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "replace", "path": "/a/b/c", "value": 42 },
{ "op": "move", "from": "/a/b/c", "path": "/a/b/d" },
{ "op": "copy", "from": "/a/b/d", "path": "/a/b/e" }
]

L'évaluation d'un document JSON Patch commence par rapport à un document JSON cible. Les opérations sont appliquées séquentiellement dans l'ordre où elles apparaissent dans le tableau. Chaque opération de la séquence est appliquée au document cible; le document résultant devient la cible de l'opération suivante. L'évaluation se poursuit jusqu'à ce que toutes les opérations soient appliquées avec succès ou jusqu'à ce qu'une condition d'erreur soit rencontrée.