Comparador de JSON e patch

Cole dois documentos JSON. A página lista cada valor acrescentado, removido ou alterado, com o caminho dele, e escreve um JSON Patch RFC 6902 que transforma o documento da esquerda no da direita.

Gratuita Funciona no seu navegador Verificada em terça-feira, 10 de novembro de 2026

O primeiro documento, em geral a versão antiga. Os valores dele são o “antes” de cada alteração.

O segundo documento, em geral a versão nova. Os valores dele são o “depois” de cada alteração.

Compara os arrays como coleções, então um item que só muda de lugar não é uma alteração.

Resultado

Número de diferenças — Valores acrescentados, removidos e alterados juntos.
Validade — Se os dois textos são JSON válido, ou qual deles não é.
Resumo —
Verificação do patch — Aplica o patch ao documento da esquerda no navegador e compara o resultado com o documento da direita.
JSON Patch (RFC 6902)
Diferenças

Esta ferramenta funciona no seu navegador. O que você digita não é enviado para nós.

Como usar

  1. Cole o JSON antigo em JSON da esquerda e o JSON novo em JSON da direita.
  2. Marque Ignorar a ordem dos itens de arrays se os arrays forem conjuntos, como listas de tags.
  3. Leia a tabela Diferenças. Cada linha dá o Caminho (JSON Pointer) do valor, e copie o JSON Patch quando Verificação do patch disser que ele se aplica.

Como os documentos são comparados

Os dois documentos são comparados pelo valor. A ordem dos nomes em um objeto não importa, porque o JSON define um objeto como um conjunto de membros. A ordem dos itens em um array importa, a menos que você marque a opção, já que um array é uma lista ordenada.

Números são comparados como números, então 1 e 1.0 são iguais. A RFC 8259, seção 6, diz que inteiros de -(2^53)+1 a (2^53)-1 são lidos do mesmo modo por qualquer implementação, e um inteiro mais longo pode ser arredondado ao ser lido.

Caminhos e o patch

Um caminho é um JSON Pointer (RFC 6901): cada passo é um nome ou um índice, separado por uma barra. O primeiro item da lista de tags é /tags/0, e o caminho vazio é o documento inteiro. Uma barra dentro de um nome é escrita como ~1, e um til é escrito como ~0.

O JSON Patch (RFC 6902) usa três operações: add, remove e replace. Os itens de array removidos são retirados do último para o primeiro, para que cada índice continue certo quando é usado, e os itens acrescentados vão para o fim com o índice "-", que a RFC 6902 define como o fim do array.

Ignorar a ordem dos arrays

Com a opção marcada, os itens são pareados pelo valor, qualquer que seja a posição deles. Itens sem par são informados como acrescentados ou removidos. Um array que difere é substituído inteiro no patch, porque um patch que só move itens precisaria saber como eles se moveram. O patch então dá o array na ordem do documento da direita.

Exemplo resolvido: os documentos padrão

O documento da esquerda tem o nome FireToolLand, a versão 1, as tags json e csv, e o campo free com o valor true. O documento da direita tem a versão 2, as tags csv, json e yaml, e o campo license com o valor null. Lidas em ordem, as diferenças são seis: a versão, as duas tags alteradas, a tag yaml acrescentada, o free removido e o license acrescentado.

Com Ignorar a ordem dos itens de arrays marcado, as tags são os mesmos dois itens em outra ordem, então a única diferença de tag é yaml, e o número cai para quatro.

Resultado Textos padrão Ordem ignorada
Número de diferenças 6 4
Resumo Acrescentados: 2; removidos: 1; alterados: 3. Acrescentados: 2; removidos: 1; alterados: 1.

Perguntas frequentes

Por que a ordem dos itens de um array importa?

Em JSON, um array é uma lista ordenada, então [1,2] e [2,1] são dados diferentes. Marque Ignorar a ordem dos itens de arrays quando o array for um conjunto, como uma lista de tags ou de permissões.

O que significa um caminho como /tags/0?

É um JSON Pointer (RFC 6901): o membro tags e depois o primeiro item dele, porque os índices começam em 0. O caminho vazio significa o documento inteiro, e um nome que contém uma barra é escrito com ~1 no lugar dela.

1 e 1.0 são o mesmo valor?

Sim. Os dois são o número um, então a página não informa diferença. Inteiros maiores que 2^53 podem ser arredondados por um leitor de JSON, então compare identificadores longos como texto.

Para que serve um JSON Patch?

É uma lista de passos (RFC 6902) que um servidor ou uma biblioteca aplica a um documento para obter outro, por exemplo para atualizar um arquivo de configurações guardado. A verificação do patch mostra que os passos dão o documento certo.

Por que um array inteiro é substituído quando a ordem é ignorada?

Com a ordem ignorada, um array alterado não tem um único passo que o transforme no certo sem saber como os itens se moveram. Por isso o patch escreve o array da direita por inteiro.

Meu JSON é enviado para algum lugar?

Não. Os dois textos são lidos e comparados no seu navegador, e nada do que você cola é enviado para o nosso servidor ou guardado lá.

Fontes

Números e texto verificados pela última vez em terça-feira, 10 de novembro de 2026.

Usamos cookies necessários para o site funcionar. Com o seu consentimento, o Google também usa cookies de publicidade para mostrar anúncios personalizados. Se você recusá-los, continuará vendo anúncios, mas eles não serão personalizados.