Como usar
- Cole o seu JSON na caixa de entrada à esquerda (ou clique em «Carregar exemplo» para experimentar).
- Escolha um recuo de 2 ou 4 espaços.
- Clique em «Formatar» para melhorar a apresentação ou em «Minimizar» para comprimi-lo numa única linha.
- Se o JSON não for válido, leia a mensagem de erro que aparece por baixo das caixas para identificar o problema.
- Clique em «Copiar» para copiar o resultado para a área de transferência.
Exemplo
Entrada
{"name":"CodeKitHub","tools":["json","base64"],"free":true}Resultado
{
"name": "CodeKitHub",
"tools": [
"json",
"base64"
],
"free": true
}Os mesmos dados, formatados com um recuo de 2 espaços. A opção Minimizar faz o contrário: remove todos os espaços em branco.
O que é esta ferramenta?
Um formatador JSON recebe texto JSON bruto, minificado ou desorganizado e reescreve-o com indentação e quebras de linha consistentes, para que se torne fácil de ler. O JSON (JavaScript Object Notation) é o formato de dados mais comum utilizado por APIs, arquivos de configuração e sistemas de registo, mas os servidores costumam enviá-lo como uma única linha longa e ilegível, para poupar largura de banda.
Esta ferramenta também funciona como um validador de JSON: analisa o seu código utilizando as mesmas regras rigorosas que os navegadores utilizam; assim, se o seu JSON tiver uma vírgula em falta, uma chave sem aspas ou uma vírgula final, verá a mensagem de erro exata, em vez de uma falha silenciosa.
O JSON é formalmente definido por dois padrões alinhados, o RFC 8259 e o ECMA-404 — e a especificação é deliberadamente mais rigorosa do que o próprio JavaScript, razão pela qual um trecho que roda sem problemas como código JS ainda pode falhar aqui na validação estrita de JSON.
Dicas práticas
- Está depurando uma API? Cole primeiro a resposta em bruto e, só depois, formate-a — o validador identifica a linha e a coluna exatas de qualquer problema de sintaxe, o que é muito melhor do que ter de se esforçar para ler um bloco de texto de apenas uma linha.
- Utilize um recuo de 2 espaços para facilitar a leitura na tela e minimize o código antes de colar o JSON num URL, numa variável de ambiente ou numa mensagem de chat — os espaços em branco apenas ocupam bytes nesses casos.
- Os comentários ao estilo JSON5 e as vírgulas finais são as duas razões mais comuns pelas quais uma configuração escrita manualmente «parece estar correta», mas não passa na validação: o JSON estrito não permite nenhuma das duas.
- No caso de arquivos muito grandes (registos, cópias de segurança de bases de dados), formate apenas o fragmento que lhe interessa — o seu editor mantém-se ágil e a estrutura fica mais fácil de acompanhar.
Como isto se enquadra nos fluxos de trabalho reais
O fluxo mais comum que observamos: uma API devolve JSON codificado em Base64 ou minimizado dentro de um token ou da carga útil de um webhook. Primeiro, descodifique o Base64; em segundo lugar, formate o JSON; e, em terceiro lugar, compare as duas respostas quando algo tiver mudado entre ambientes. Aqui, cada etapa tem uma ferramenta dedicada e as suas cargas nunca saem do navegador em nenhuma delas.
Os programadores front-end utilizam a minificação com a mesma frequência que a formatação: vai enviar um arquivo JSON estático de grande dimensão? A minificação permite, normalmente, poupar 20 a 30 % antes mesmo de o gzip começar a funcionar.
→ Codificador/Decodificador Base64 · Diferenças entre textos
Erros comuns de JSON e como corrigi-los
A maioria dos relatórios de «JSON inválido» tem origem num punhado repetido de causas. A tabela abaixo cobre as que mais aparecem ao editar arquivos de configuração à mão ou ao depurar respostas de API coladas manualmente.
| Erro | Exemplo | Correção |
|---|---|---|
| Vírgula final | {"a": 1, "b": 2,} | Remova a vírgula depois do último item de um objeto ou array. |
| Aspas simples | {'a': 1} | O JSON exige aspas duplas para chaves e valores de texto. |
| Chave sem aspas | {a: 1} | Coloque cada chave entre aspas duplas: {"a": 1}. |
| Comentários | { // nota\n "a": 1 } | JSON estrito não tem sintaxe de comentário — apague // e /* */ antes de validar. |
| Vírgula em falta | {"a": 1 "b": 2} | Insira uma vírgula entre cada par chave-valor. |
| NaN / undefined / Infinity | {"a": NaN} | São válidos em JavaScript, mas não em JSON — use null ou uma string. |
Casos de utilização comuns
- Ler uma resposta de API minimizada, devolvida como uma única linha ilegível, para compreender a sua estrutura durante a depuração.
- Validar um arquivo de configuração (como um «package.json» ou um arquivo de definições baseado em JSON) que, por alguma razão, não está sendo lido corretamente por uma aplicação.
- Partilhar um excerto de JSON legível e formatado num relatório de erro, numa revisão de código ou na documentação.
- Reduzir uma carga JSON à sua forma mais compacta antes de a incorporar num parâmetro de URL ou de a armazenar numa coluna de uma base de dados com limites de tamanho.
Por que usar?
Uma API acabou de devolver um erro 400 numa única linha ilegível — cole aqui para ver exatamente qual campo falhou, em vez de rolar uma parede de texto.
O build está quebrando com «Unexpected token in JSON at position 214» e mais nenhuma pista — cole o arquivo e a mensagem de erro aponta a linha e a coluna exatas.
Vai colar um objeto de configuração dentro de uma tag <script> ou enviá-lo por uma API com limite de payload apertado — minifique primeiro e corte os espaços antes de sair da sua máquina.
O JSON que está depurando contém dados de clientes ou chaves de API — tudo roda localmente, então nada é enviado a um servidor de terceiros só para ser lido.
Está revisando o pull request de um colega com uma fixture JSON minificada de propósito — formate aqui primeiro para o diff fazer sentido de verdade.
Sem cadastro nem paywall entre você e a ferramenta — abre no celular durante um plantão às 3h da manhã e funciona exatamente igual.
Perguntas frequentes
Os meus dados JSON são carregados para um servidor?
Não. Esta ferramenta funciona inteiramente no seu navegador, utilizando JavaScript. O seu arquivo JSON nunca sai do seu dispositivo, o que torna a sua utilização segura com dados confidenciais ou internos.
Por que é que o meu JSON não é válido?
As causas mais comuns são: vírgulas em falta ou a mais, chaves sem aspas duplas, aspas simples em vez de aspas duplas, vírgulas a seguir ao último elemento e comentários (o JSON não permite comentários). A mensagem de erro que aparece por baixo da caixa de introdução indica o que o analisador detetou.
Qual é a diferença entre «Formatar» e «Minimizar»?
A opção «Formatar» adiciona recuos e quebras de linha para tornar o JSON legível para o ser humano. A opção «Minimizar» remove todos os espaços em branco desnecessários para tornar o JSON o mais pequeno possível — o que é útil antes de o transmitir ou incorporar.
Existe algum limite de tamanho?
A ferramenta não impõe qualquer limite rígido. Os arquivos muito grandes (dezenas de megabytes) podem demorar mais tempo a carregar, dependendo do seu dispositivo, uma vez que todo o processamento é feito localmente no seu navegador.
Isto consegue corrigir automaticamente um JSON com erros?
Não — a ferramenta indica-lhe exatamente onde o JSON está incorreto para que possa corrigi-lo, mas não adivinha nem altera os seus dados. Isto é intencional: «corrigir» os dados silenciosamente pode ocultar erros reais.
Esta ferramenta suporta JSON5 ou JSONC (comentários, vírgula final, chaves sem aspas)?
Não, e isso é proposital — a validação segue rigorosamente o RFC 8259, o mesmo padrão que a sua API e o JSON.parse() exigem. Se precisar de formatar um arquivo JSONC (como tsconfig.json ou as definições do VS Code), remova primeiro os comentários, senão o analisador vai assinalá-los como erro.
Qual é a diferença entre isto e simplesmente correr JSON.stringify no console do navegador?
JSON.stringify(JSON.parse(x), null, 2) faz a mesma reformatação, mas exige abrir o console e, num JSON inválido, devolve apenas um erro genérico — sem indicar linha nem coluna, ao contrário desta ferramenta.
Funciona com JSON muito aninhado, como respostas de uma API GraphQL?
Sim — não há um limite artificial de profundidade, apenas o limite prático da memória do seu navegador e da paciência para rolar a tela. É exatamente nas estruturas profundamente aninhadas que a formatação ajuda mais, porque uma versão minificada fica quase ilegível a partir do terceiro ou quarto nível.
Funciona sem ligação à internet?
Sim. Depois de a página carregar, toda a lógica de análise e formatação roda localmente em JavaScript — pode desligar o Wi-Fi e continuar a formatar JSON normalmente.
Funciona em qualquer navegador, incluindo os mais antigos?
Funciona em qualquer navegador moderno com suporte a JavaScript ES6 (Chrome, Firefox, Safari, Edge das últimas versões). Em navegadores muito antigos ou sem JavaScript ativado, a ferramenta simplesmente não carrega, já que todo o processamento depende do motor JS local.