CodeKitHub
Ferramentas JSON

Formatador e Validador JSON Online

Última atualização:

Cole o seu JSON abaixo para o formatar, organizar ou minimizar instantaneamente. A ferramenta valida o seu JSON à medida que o formata e indica o erro exato caso haja algum problema. Tudo é executado localmente no seu navegador — os seus dados nunca são enviados para nenhum servidor.

Como usar

  1. Cole o seu JSON na caixa de entrada à esquerda (ou clique em «Carregar exemplo» para experimentar).
  2. Escolha um recuo de 2 ou 4 espaços.
  3. Clique em «Formatar» para melhorar a apresentação ou em «Minimizar» para comprimi-lo numa única linha.
  4. Se o JSON não for válido, leia a mensagem de erro que aparece por baixo das caixas para identificar o problema.
  5. 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.

ErroExemploCorreçã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.

Ferramentas relacionadas