Constructor de JSON Patch (RFC 6902)
Desarrollo
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
Decodificador JWT
Decodifica un JSON Web Token para ver su cabecera, claims y expiración.
Generador de UUID
Genera UUID v4 aleatorios en lote, con copia.
Generador de Hash (SHA)
Genera hashes SHA-1, SHA-256, SHA-384 y SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifica texto para URLs en porcentaje, o decodifica URLs a texto.
Codificador / Decodificador Base64
Codifica texto a Base64 o decodifica Base64 a texto al instante.
Formateador y Validador de JSON
Formatea, embellece, minifica y valida JSON en tu navegador.