JSON Patch

Estándares Y Rfcs Jan 6, 2025 JAVASCRIPT

Definition

RFC 6902 - un formato para expresar una secuencia de operaciones a aplicar a un documento JSON. Usa un array de operaciones (add, remove, replace, move, copy, test) con rutas JSON Pointer.

Example

Para reemplazar el email de un usuario y eliminar teléfono: [{“op”: “replace”, “path”: “/email”, “value”: “[email protected]”}, {“op”: “remove”, “path”: “/phone”}]

Analogía

Como instrucciones quirúrgicas precisas - cada operación es explícita (corta aquí, sutura allá, remueve esto) en lugar de solo describir el resultado final.

Code Example


// JSON Patch request
PATCH /users/123
Content-Type: application/json-patch+json

[
  { "op": "replace", "path": "/email", "value": "[email protected]" },
  { "op": "remove", "path": "/phone" },
  { "op": "add", "path": "/verified", "value": true },
  { "op": "test", "path": "/age", "value": 30 },
  { "op": "move", "from": "/oldAddress", "path": "/address" },
  { "op": "copy", "from": "/email", "path": "/backupEmail" }
]

// Operations explained
// add: Insert/add a value
// remove: Delete a field
// replace: Update a value
// test: Assert a value (fails patch if doesn't match)
// move: Relocate a value
// copy: Duplicate a value

// Using fast-json-patch library
const jsonpatch = require('fast-json-patch');
const document = { name: "Alice", age: 30 };
const patch = [{ op: "replace", path: "/age", value: 31 }];
const result = jsonpatch.applyPatch(document, patch).newDocument;

Standards & RFCs