Constructor de JSON Patch (RFC 6902)
JSON Patch RFC 6902 es un formato wire para describir cambios a un documento JSON — útil para requests PATCH, updates optimistas, historial de undo y transformaciones operacionales. Esta herramienta hace ambas direcciones: pega un JSON source y target, obtén el patch mínimo que convierte uno al otro; o pega un source y un patch, ve el resultado después de aplicar. El diff usa comparación estructural recursiva con escapado JSON Pointer `~0`/`~1` para claves con slashes o tildes. El lado apply respeta las seis ops incluyendo `test` (assertion fallida lanza error), `copy` y `move`. Útil para probar patches antes de pegarle a tu servidor, o resolver las ops correctas por ejemplo.
[
{
"op": "replace",
"path": "/age",
"value": 31
},
{
"op": "replace",
"path": "/address/city",
"value": "Busan"
},
{
"op": "remove",
"path": "/address/zip"
},
{
"op": "add",
"path": "/address/country",
"value": "KR"
},
{
"op": "replace",
"path": "/tags/1",
"value": "owner"
},
{
"op": "add",
"path": "/tags/2",
"value": "user"
}
]Puro RFC 6902 — soporta ops add, remove, replace, move, copy, test con escapado pointer `~0`/`~1`.
Cómo usar
- Modo Diff: pega source y target, ve el patch JSON. Edita cualquier lado para ver cómo cambia el patch.
- Modo Apply: pega source y un array de patch, ve el documento resultante. Errores (pointer malo, `test` fallido) se muestran inline.
- Sintaxis JSON Pointer: `/foo/0/bar` camina `foo.0.bar`. Escapa `/` como `~1`, `~` como `~0`. Trailing `-` en un path de array significa 'append'.
Preguntas frecuentes
- ¿Por qué no solo enviar el nuevo documento?
- Ancho de banda por uno. Concurrencia por dos: si Alice y Bob ambos editan un doc, puedes mergear sus patches semánticamente (`replace /name` es compatible con `add /tags/-`), mientras que dos docs completos tendrían que elegir un ganador. Además, los patches son un rastro de auditoría preciso de qué cambió y cuándo.
- ¿Es lo mismo que JSON Merge Patch (RFC 7396)?
- No. Merge Patch es más simple — envías un documento parcial donde las claves presentes sobrescriben y `null` borra. Es más fácil para humanos pero pierde precisión (no puedes añadir a un array, no puedes representar valores `null` literales, no hay test atómico). RFC 6902 (esta herramienta) es el formato wire preciso. RFC 7396 es el formato de conveniencia.
Herramientas relacionadas
Resolutor de JSON Pointer (RFC 6901)
Resuelve un JSON Pointer RFC 6901 como /user/roles/0 contra un documento JSON, con escape ~0/~1 y soporte de fragmento URI (#/…) — más una lista clicable de cada puntero del documento, en tu navegador.
Visor de Diferencias de JSON
Compara dos documentos JSON estructuralmente — mira exactamente qué claves se añadieron, quitaron o cambiaron.
Herramientas Semver (Parser, Comparador, Incremento)
Parsea, compara e incrementa versiones semánticas lado a lado, con un expansor de rango que muestra qué cubren realmente ^x.y.z y ~x.y.z.
Constructor de Manifest PWA
Construye un `manifest.json` válido para Progressive Web App — name, icons, theme color, display mode, scope, orientation — con el HTML `<link>` y meta tags Apple correspondientes.
Codificador y Decodificador Quoted-Printable
Codifica texto a MIME Quoted-Printable (RFC 2045) o decodifícalo — con escapes =XX, saltos de línea suaves y UTF-8 — todo en tu navegador, con ajuste de línea a 76 caracteres al codificar.
Conversor de JWK a PEM (y al revés)
Convierte un JWK o un JWKS entero en claves públicas PEM y al revés, con la huella RFC 7638 de cada clave — todo en tu navegador.