Construtor de JSON Patch (RFC 6902)
Desenvolvimento
JSON Patch RFC 6902 é um formato wire para descrever mudanças em um documento JSON — útil para requests PATCH, updates otimistas, histórico de undo e transformações operacionais. Esta ferramenta faz ambas direções: cole source e target JSON, obtenha o patch mínimo que converte um no outro; ou cole source e um patch, veja o resultado após aplicar. O diff usa comparação estrutural recursiva com escape JSON Pointer `~0`/`~1` para chaves com slashes ou tildes. O lado apply respeita as seis ops incluindo `test` (assertion falha lança erro), `copy` e `move`. Útil para testar patches antes de bater no seu servidor, ou descobrir as ops certas por exemplo.
[
{
"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"
}
]RFC 6902 puro — suporta ops add, remove, replace, move, copy, test com escape pointer `~0`/`~1`.
Como usar
- Modo Diff: cole source e target, veja o patch JSON. Edite qualquer lado para ver como o patch muda.
- Modo Apply: cole source e um array de patch, veja o documento resultante. Erros (pointer ruim, `test` falhado) aparecem inline.
- Sintaxe JSON Pointer: `/foo/0/bar` caminha `foo.0.bar`. Escape `/` como `~1`, `~` como `~0`. Trailing `-` em path de array significa 'append'.
Perguntas frequentes
- Por que não só enviar o novo documento?
- Largura de banda por um. Concorrência por dois: se Alice e Bob ambos editam um doc, você pode mesclar seus patches semanticamente (`replace /name` é compatível com `add /tags/-`), enquanto dois docs completos teriam que escolher um vencedor. Além disso, patches são um trilho de auditoria preciso de o que mudou e quando.
- É o mesmo que JSON Merge Patch (RFC 7396)?
- Não. Merge Patch é mais simples — você envia um documento parcial onde chaves presentes sobrescrevem e `null` deleta. É mais fácil para humanos mas perde precisão (não pode adicionar a array, não pode representar valores `null` literais, sem teste atômico). RFC 6902 (esta ferramenta) é o formato wire preciso. RFC 7396 é o formato de conveniência.
Ferramentas relacionadas
Decodificador JWT
Decodifique um JSON Web Token para inspecionar cabeçalho, claims e expiração.
Gerador de UUID
Gere UUIDs v4 aleatórios em lote, com cópia.
Gerador de Hash (SHA)
Gere hashes SHA-1, SHA-256, SHA-384 e SHA-512 a partir de texto.
Codificador / Decodificador de URL
Codifique texto para URLs em porcentagem, ou decodifique URLs em texto.
Codificador / Decodificador Base64
Codifique texto em Base64 ou decodifique Base64 de volta em texto.
Formatador e Validador de JSON
Formate, embeleze, minifique e valide JSON no seu navegador.