Formatador e validador JSON

Cole um JSON para formatar, validar ou minificar. Os erros são informados com linha e coluna.

Indentação

O que este formatador JSON faz

Esta ferramenta recebe qualquer texto JSON e o formata com indentação consistente, comprime tudo em uma única linha minificada ou simplesmente verifica se ele é válido. Quando a entrada não é um JSON válido, o validador aponta a linha e a coluna exatas em que a análise falhou e mostra os caracteres ao redor, para você corrigir uma vírgula faltando ou uma chave sem aspas em segundos, em vez de vasculhar um paredão de texto.

Tudo acontece localmente no seu navegador, usando o parser de JSON nativo do motor JavaScript. O texto que você cola nunca é enviado a um servidor, o que torna seguro usar a ferramenta com respostas de API, arquivos de configuração, logs ou qualquer dado que contenha tokens, credenciais ou informações pessoais.

Como usar

Cole ou digite o JSON na caixa de entrada. A formatação roda automaticamente enquanto você digita. Escolha uma indentação de 2 espaços, 4 espaços ou tabs e, se quiser, ative Ordenar chaves para colocar as chaves dos objetos em ordem alfabética em todos os níveis de aninhamento, o que facilita comparar dois documentos com uma ferramenta de diff. Clique em Minificar para remover todo o espaço em branco quando precisar do menor payload possível para uma requisição HTTP ou uma variável de ambiente. Use Copiar para colocar o resultado na área de transferência ou Baixar para salvá-lo como arquivo .json.

A barra de status mostra o tamanho em bytes, o número de chaves de objeto e a profundidade máxima de aninhamento, uma forma rápida de conferir um documento grande antes de enviá-lo para algum lugar.

Erros comuns de JSON que este validador detecta

Vírgulas sobrando depois do último item de um array ou objeto não são permitidas em JSON, embora a maioria das linguagens de programação as aceite. Aspas simples em strings ou chaves são inválidas: JSON exige aspas duplas. Comentários não fazem parte da especificação JSON, então um bloco // ou /* */ vai falhar. Chaves sem aspas, como {name: "x"}, são literais de objeto JavaScript, não JSON. Valores especiais como NaN, Infinity e undefined não existem em JSON. Cada um desses casos gera um erro claro com uma posição para a qual você pode pular.

Contexto: de onde veio o JSON

O JSON (JavaScript Object Notation) foi especificado por Douglas Crockford no início dos anos 2000 como uma alternativa leve ao XML, usando a sintaxe de literal de objeto que o JavaScript já tinha. Foi padronizado como RFC 4627 em 2006 e depois como ECMA-404 e RFC 8259 (2017), que é a definição atual: seis tipos de valor (objeto, array, string, número, true/false, null), UTF-8 como codificação de intercâmbio e nenhum comentário. Sua ascensão acompanhou a das aplicações no lado do navegador: um formato que o navegador conseguia analisar nativamente com JSON.parse venceu qualquer coisa que precisasse de um parser separado.

Onde é usado

Quase toda API web devolve JSON, e é por isso que a primeira coisa a fazer com uma resposta desconhecida é colá-la em um formatador para ver a estrutura. Arquivos de configuração (package.json, tsconfig.json, configurações do VS Code), definições de infraestrutura (CloudFormation, estado do Terraform), bancos de dados NoSQL (documentos do MongoDB, colunas jsonb do PostgreSQL), pipelines de logs (um objeto JSON por linha em ndjson) e o payload de um token JWT são todos JSON; o JSON também viaja dentro de parâmetros de query de URL, onde precisa ser codificado com percent-encoding antes. Formatos relacionados o estendem: JSON5 e JSONC adicionam comentários e vírgulas finais para arquivos de configuração, o JSON Schema descreve a estrutura esperada e o JSON Lines transmite muitos documentos em um único arquivo — e este validador rejeita todos eles como JSON estrito, de propósito.

Perguntas frequentes

Meu JSON é enviado para algum lugar?

Não. O formatador roda inteiramente no seu navegador. Você pode desconectar da internet depois que a página carregar e ele continua funcionando.

Qual é a diferença entre formatar e minificar?

Formatar (embelezar) adiciona quebras de linha e indentação para que humanos consigam ler a estrutura. Minificar remove todo o espaço em branco desnecessário para que os dados fiquem o menor possível para as máquinas. Os dois produzem JSON semanticamente idêntico.

Por que a ferramenta diz que meu JSON é inválido se ele funciona em JavaScript?

Literais de objeto JavaScript são mais permissivos que JSON. Aspas simples, chaves sem aspas, vírgulas finais e comentários funcionam em código JavaScript, mas são proibidos pelo padrão JSON (RFC 8259).

Existe limite de tamanho?

Não há limite rígido. Documentos de vários megabytes são formatados instantaneamente em um dispositivo moderno; arquivos muito grandes são limitados apenas pela memória do seu navegador.

Ordenar as chaves muda o significado dos dados?

Não. Objetos JSON não têm ordem por especificação, então reordenar as chaves produz um documento equivalente. A ordem dos arrays é sempre preservada, porque arrays são ordenados.