Início · Ferramentas grátis · Comparar JSON
Comparar dois arquivos JSON
Cole ou solte dois documentos JSON — a resposta da API em homologação e a de produção, o
config de ontem e o de hoje. A ordem das chaves e a indentação não contam como diferença; o que
volta é uma lista com cada mudança real, o caminho onde ela está (pedido/itens[2])
e o valor de cada lado. Nenhum dos dois documentos sai desta aba.
Primeiro documento cole, ou solte um arquivo .json
Segundo documento a versão que você quer conferir
Você faz isso todo mês? Faça uma vez no TableDI 2, salve como trabalho e rode de novo no mês seguinte. Baixar o TableDI 2 grátis
O arquivo não é enviado. Ele é lido pelo JavaScript desta aba e nunca sai do seu computador — nenhum servidor o vê, e fechar a aba descarta os dados.
Como comparar dois arquivos JSON
- Colocar os dois documentos. Cole o texto ou solte um .json em cada caixa. A leitura acontece nesta aba, sem upload.
- Ler a lista de diferenças. Cada linha é uma diferença: o caminho, se foi incluída, removida ou alterada, e o valor de cada lado.
- Ignorar o que é só sintaxe. Chaves em outra ordem e outra indentação não geram linha nenhuma.
- Levar a lista adiante. Baixe em CSV ou copie, e cole no chamado ou na revisão.
Por que um diff de texto pinta tudo de vermelho
{"b":1,"a":2} e {"a":2,"b":1} são o mesmo objeto. Quase toda biblioteca
que regrava um JSON muda a ordem das chaves, troca a indentação ou tira a quebra de linha do final.
Um comparador de texto, linha contra linha, mostra então o arquivo inteiro como alterado — e as duas
mudanças que importavam se perdem no meio.
Aqui os dois lados são interpretados antes da comparação. O que sobra na lista é só o que mudaria o comportamento de quem consome o JSON.
Homologação contra produção: o caso de uso mais comum
A pergunta que traz a maioria das pessoas a um comparador de JSON é «a resposta mudou entre um ambiente e outro?» — ou entre a versão antiga e a nova de uma integração. Cole a resposta de homologação de um lado e a de produção do outro. Se a única diferença for que o servidor novo escreve as chaves em outra ordem, o resultado é zero diferenças, e isso também é uma resposta.
Acentos: o que conta como igual e o que não conta
"S\u00e3o Paulo"e"São Paulo"são iguais. O escape\u00e3é só outra forma de escreverãdentro de um JSON, e muitas bibliotecas escapam todo caractere acentuado ao gravar. Como a comparação é feita depois da leitura, essa troca não aparece como diferença.- Um
ãcomposto e umaseguido de til combinante são diferentes. Na tela os dois parecem idênticos, mas são sequências Unicode diferentes (NFC e NFD), e a comparação é exata, caractere a caractere. Se uma linha mostra o mesmo texto dos dois lados, é isso. A página não normaliza essa forma. - O arquivo é lido como UTF-8, que é o que o padrão JSON exige. Um .json salvo em ANSI (Windows-1252) por algum sistema antigo aparece com os acentos quebrados; esta página não tenta adivinhar a codificação de arquivos JSON.
Tipos são comparados, não convertidos
5 e "5" são diferentes, assim como false e 0, ou
null e uma chave ausente. No Brasil aparece muito um caso a mais: um valor que um sistema
manda como número, 1234.5, e o outro como texto formatado, "1.234,50".
Isso é relatado como tipo alterado no caminho exato — que é justamente o tipo de mudança
silenciosa que quebra uma integração numa versão menor.
Arrays guardam a ordem; objetos, não
As chaves de um objeto formam um conjunto, sem ordem. Os itens de um array formam uma sequência, e a
ordem é a informação. Por isso [1,2,3] contra [3,2,1] dá duas posições
alteradas, e um item acrescentado no fim aparece como uma única inclusão em itens[3].
Subárvores longas são resumidas numa célula ({4 fields}, [9 items] — esse
resumo sai em inglês), e as linhas abaixo dizem o que mudou dentro.
O que esta página não faz
- Mesclar. Ela lista diferenças; não produz um terceiro documento.
- Casar itens de array por id. Arrays são comparados por posição. Se os dois arquivos têm os mesmos registros em outra ordem, ordene antes — ou, se os dados forem tabela, comparar duas planilhas casa as linhas por uma coluna chave.
- Consertar JSON quebrado. Um arquivo que não abre é relatado com a posição em que o interpretador reclamou: vírgula sobrando, aspas simples, comentário.
- Ler JSON Lines ou JSON5. Só JSON padrão.
Respostas de API costumam ter dados que não deveriam sair daqui
Um JSON colado num comparador costuma ser uma resposta de API, um arquivo de configuração ou uma exportação — com token, chave de acesso ou CPF de cliente no meio. Os dois documentos são lidos e comparados pelo JavaScript desta aba. Nenhuma requisição leva o conteúdo deles.
O TableDI 2 é um aplicativo de desktop para o trabalho com arquivos que se repete a cada período: ele guarda suas fontes, suas regras e a entrega como um trabalho, e no mês seguinte você coloca os arquivos novos e roda de novo. Tudo roda na sua própria máquina. Ele compara arquivos de planilha de um período para o outro; para JSON avulso, esta página basta.
Perguntas frequentes
Como comparar dois arquivos JSON online?
Cole um documento em cada caixa, ou solte um .json em cada uma. A lista de diferenças aparece logo abaixo, com o caminho de cada mudança, e pode ser baixada em CSV. Nada é enviado para servidor.
Por que dois arquivos que parecem diferentes dão zero diferenças?
Porque o que mudou foi formatação, ordem das chaves ou escape de acento
(\u00e3 no lugar de ã). Nada disso muda o que o documento quer dizer.
Se você precisa de uma comparação caractere a caractere, o que você quer é um diff de texto.
O mesmo texto aparece dos dois lados e mesmo assim é marcado como alterado. Por quê?
Quase sempre é a forma Unicode do acento: um lado tem ã como um caractere só, o
outro tem a mais o til combinante. Parecem iguais e não são. A comparação é exata e não
normaliza essa diferença — o que, numa chave usada para busca, é exatamente o que você quer saber.
Dá para comparar arrays de registros?
Sim, por posição. Se os mesmos registros vêm em outra ordem nos dois arquivos, ordene os dois pelo id primeiro: a posição é a única ordem que um array carrega.
Tem limite de tamanho?
Arquivos de alguns megabytes são lidos e comparados na aba. A prévia mostra as primeiras 300 diferenças e o CSV traz todas.
Meus arquivos são enviados para algum lugar?
Não. Abra as ferramentas do desenvolvedor na aba Rede e cole um documento: nenhuma requisição leva o conteúdo. A página carrega dois contadores de visita, e só.
Relacionado
Você faz isso todo mês?
No TableDI 2 você faz uma vez e salva como um trabalho. No mês seguinte, coloca os arquivos novos e roda de novo.
macOS, Apple Silicon e Intel; a versão para Windows está a caminho (o que fazer até lá). Grátis não é teste — sem conta, sem cartão.
Revisado em 2026-09-11 pela equipe do TableDI. Algo errado nesta página? Escreva para nós — é uma caixa de entrada só, lida por quem constrói o TableDI.