JSON Merge Patch

Estándares Y Rfcs Jan 6, 2025 JAVASCRIPT

Definition

RFC 7396 - un formato para expresar una secuencia de operaciones a aplicar a un documento JSON. Usa un objeto JSON para describir cambios; valores null eliminan campos, y valores no null reemplazan o agregan campos.

Example

Para actualizar el email de un usuario y eliminar su teléfono, envía: {“email”: “[email protected]”, “phone”: null}. El servidor combina esto con el recurso existente.

Analogía

Como editar un documento con control de cambios - proporcionas solo los campos que cambiaron, y null significa “eliminar este campo”.

Code Example


// Original resource
{
  "name": "Alice",
  "email": "[email protected]",
  "phone": "+1234567890",
  "age": 30
}

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

{
  "email": "[email protected]",
  "phone": null
}

// Result after merge
{
  "name": "Alice",
  "email": "[email protected]",
  "age": 30
}

// Implementation
function applyMergePatch(original, patch) {
  const result = { ...original };
  for (const [key, value] of Object.entries(patch)) {
    if (value === null) {
      delete result[key];
    } else {
      result[key] = value;
    }
  }
  return result;
}

Standards & RFCs

Standards & RFCs