Formatador e validador JSON gratuito on-line

Cole o seu JSON para o formatar, minificar ou validar instantaneamente. Todo o processamento acontece no seu navegador.

Os seus dados nunca saem do seu dispositivo
$

O que é JSON e por que conquistou a web

JSON (JavaScript Object Notation) é um formato de troca de dados baseado em texto derivado da sintaxe literal de objectos do JavaScript. Suporta seis tipos de dados (objectos, arrays, strings, números, booleanos e null) e nada mais. Douglas Crockford especificou o formato em 2001 como uma alternativa deliberadamente minimalista ao XML, publicando o desenho em json.org com o objectivo explícito de criar «a alternativa sem gordura ao XML». A IETF padronizou JSON como RFC 4627 em Julho de 2006, refinou-o como RFC 7159 em Março de 2014, e novamente como RFC 8259 em Dezembro de 2017 (STD 90 actual, a norma activa, também publicada em paralelo como ECMA-404). A conquista por JSON do plano de dados da web aconteceu aproximadamente entre 2008 e 2014: à medida que as single-page apps e os clientes móveis cresceram, as cargas úteis XML verbosas que as APIs anteriores usavam foram substituídas por JSON. Em 2026, praticamente toda API REST pública se documenta em JSON; XML sobrevive em formatos de documento e integração empresarial, mas JSON detém a economia das APIs. Esta ferramenta lê JSON, valida-o contra a especificação, e reemite-o formatado (com indentação, quebras de linha) ou minificado (espaços em branco removidos).

O que «Format JSON» realmente faz

JSON é insensível a espaços em branco ao nível da spec, um parser lê {"name":"Alice","age":30} de forma idêntica à forma indentada multilinha. A diferença visível é puramente para os leitores humanos. A formatação (também chamada «pretty-print» ou «embelezamento») insere indentação entre níveis aninhados, coloca cada propriedade na sua própria linha, e adiciona um espaço após os dois-pontos entre chave e valor. Minificar faz o inverso: remove cada byte de espaço em branco excepto dentro de literais de string. As respostas HTTP de produção são tipicamente minificadas para poupar largura de banda (gzip e Brotli no limite do CDN tratam do resto); durante o desenvolvimento a versão formatada é o que se lê. As convenções de formatação padrão: 2 espaços por nível de indentação (o predefinido web moderno, predefinido do Prettier, norma do ecossistema JavaScript), 4 espaços para bases de código que seguem convenções de inspiração Python, ou 1 tabulação para projectos que preferem indentação por tabulação. JSON.stringify() em JavaScript recebe um inteiro ou string como segundo argumento controlando exactamente isto, JSON.stringify(data, null, 2) produz saída indentada a 2 espaços. Esta ferramenta expõe as mesmas três opções.

JSON é estrito, as regras que fazem tropeçar

A gramática do JSON é famosa por ser implacável. As chaves de objecto têm de estar entre aspas duplas (aspas simples não são legais). Os valores de string têm de usar aspas duplas. Sem vírgulas finais após a última propriedade de um objecto ou último elemento de um array, fonte frequente de surpresa para programadores JavaScript porque o JS aceita vírgulas finais. Sem comentários: ao contrário de YAML ou JavaScript, JSON não tem sintaxe de comentários. Sem valor undefined: JSON tem apenas null; tentar codificar em JSON o undefined do JavaScript remove a propriedade por completo. Os números têm de estar em forma decimal JSON: sem zeros à esquerda (007 ilegal), sem hex (0x7F ilegal), sem Infinity ou NaN. As strings têm de ser UTF-8 válido: a maioria dos parsers tolera problemas de pares de substitutos UTF-16 mas a spec exige Unicode bem formado. Chaves duplicadas são tecnicamente válidas segundo a spec mas produzem comportamento indefinido na maioria dos parsers (o último valor costuma ganhar). Várias variantes de JSON relaxam estas regras: JSON5 (Aseem Kishore, 2012) permite vírgulas finais, aspas simples, comentários e outros relaxamentos ergonómicos; JSONC (usado por tsconfig.json do VS Code e similares) é JSON com comentários de linha estilo C permitidos; HJSON aponta para amabilidade humana com chaves entre aspas opcionais. Nenhum é JSON propriamente dito, precisam dos seus próprios parsers, e a maioria das ferramentas de produção espera JSON estrito conforme RFC 8259.

Onde o JSON formatado ganha o seu sustento

JSON no ecossistema de ferramentas mais amplo

Para fluxos de trabalho em linha de comandos, jq (Stephen Dolan, primeiro lançamento em 2012) é o processador JSON canónico, uma binária pequena ligada estaticamente que trata de formatação (jq .), filtragem (jq '.users[] | .email'), transformação e consultas complexas com a sua própria linguagem de expressões concisa. A biblioteca padrão do Python inclui python -m json.tool para pretty-print num só passo. O JSON.stringify(obj, null, 2) embutido do JavaScript é o formatador mais rápido no navegador/em Node. JSON Schema (draft 2020-12 actual, editado por Henry Andrews, Austin Wright, Greg Dennis e outros) fornece um vocabulário para declarar a forma que um documento JSON deve ter (restrições de tipo, propriedades obrigatórias, validadores de formato, lógica condicional) e é o padrão para validação de contratos de API, especificações OpenAPI 3.x, validação de configuração, e geração de formulários baseados em JSON. JSONPath (Stefan Goessner, 2007, agora padronizado como RFC 9535 em Fevereiro de 2024) é a linguagem de consulta semelhante a XPath para JSON, usada pelo subconjunto mais simples do jq e por ferramentas como Postman, jsonpath-ng (Python), e o AWS CLI. JSON-LD (Recomendação W3C, versão 1.1 actual publicada em Julho de 2020) estende JSON com convenções de dados ligados da web semântica e é o formato que a Google recomenda para marcação de dados estruturados em páginas web. JSON Patch (RFC 6902) e JSON Merge Patch (RFC 7396) definem formatos diff/patch padronizados para documentos JSON.

Vista Tree, porque importa

Um documento JSON pretty-print de tamanho mesmo moderado (algumas centenas de linhas) é difícil de navegar como texto plano. A vista tree desta ferramenta colapsa cada objecto e array num nó expansível, deixa-o clicar para ver apenas os níveis que lhe interessam, e mostra a expressão JSONPath de qualquer nó em que clica. A funcionalidade caminho-ao-clique é a ponte prática entre «consigo ver o valor que quero no documento» e «consigo escrever código que aceda a esse valor», cole o caminho em jq, numa consulta JSONPath, na notação de parênteses rectos do JavaScript, numa asserção de teste do Postman. Para respostas de API profundamente aninhadas (Stripe, Shopify, Salesforce, qualquer coisa com modelos de domínio ricos), vista tree + cópia de caminho é o fluxo de trabalho que passa de «vejo o campo» para «tenho a expressão de acesso» em dois cliques.

Privacidade: validação apenas no navegador

O JSON colado num formatador é frequentemente dados de produção reais, respostas de API com identificadores de utilizador, tokens de sessão, IDs internos de entidades, valores de configuração que incluem URLs de endpoints e feature flags. Os formatadores JSON do lado do servidor levam uma cópia de cada entrada para os seus logs. Esta ferramenta faz parsing do seu JSON com o JSON.parse() embutido do navegador, percorre a estrutura resultante em JavaScript, e reemite-a como string, tudo dentro do seu separador de navegador. Verifique no separador Rede das DevTools enquanto clica em Format (não dispara nenhum pedido), ou ponha a página offline (modo de avião) após o carregamento e o formatador continua a funcionar. Seguro para respostas de API de produção, configuração interna, JSON contendo tokens ou chaves, ou qualquer documento que não queira ver copiado para o disco rígido de um estranho.

Perguntas frequentes

Porque é que o meu JSON falha na validação?

Os erros mais comuns: vírgulas finais após a última propriedade/elemento (legais em JavaScript e JSON5, ilegais em JSON padrão); aspas simples em vez de duplas (JSON exige " apenas); chaves não citadas (os literais de objecto JavaScript permitem {name: "Alice"} mas JSON exige {"name": "Alice"}); comentários (JSON não tem sintaxe de comentários, use JSON5 ou JSONC se precisar); valores undefined (JSON só tem null); parênteses/chavetas em falta; flutuantes especiais como NaN ou Infinity (ilegais em JSON). A mensagem de erro do validador dá a linha e a coluna; verifique aí primeiro.

Qual é a diferença entre formatar e minificar?

Format adiciona indentação, quebras de linha e espaçamento para tornar o JSON legível; minify remove todo o espaço em branco desnecessário para o tornar tão pequeno quanto possível. O conteúdo de dados real é idêntico, os parsers JSON ignoram espaços em branco ao nível sintáctico. Use formatado para desenvolvimento, depuração e revisão de código; use minificado para transmissão HTTP, JSON embutido em bundles JavaScript, ou qualquer contexto em que os bytes contam. A infra-estrutura moderna (gzip nas respostas HTTP, Brotli no limite do CDN) comprime JSON agressivamente, por isso a diferença de largura de banda é menor do que parece, mas o minificado continua a ser ligeiramente mais pequeno e mais rápido a fazer parsing.

Existe um limite de tamanho?

Sem tecto rígido, mas os limites práticos dependem da memória do navegador. Ficheiros até ~10 MB formatam-se e validam-se em muito menos de um segundo em dispositivos modernos; ficheiros no intervalo 50-100 MB podem congelar brevemente o separador enquanto o JSON.parse() percorre a estrutura. Para JSON muito grande (gigabytes, típico de exports grandes de API ou dumps de logs NDJSON), as ferramentas de linha de comandos (jq, python -m json.tool, node -e) lidam melhor com eles porque podem fazer streaming em vez de carregar tudo para memória.

O que faz «Sort Keys» e quando o devo usar?

«Sort Keys» alfabetiza as chaves de cada objecto recursivamente. A semântica dos dados não muda (a ordem das chaves de um objecto JSON é tecnicamente indefinida segundo a spec, embora a maioria dos parsers preserve a ordem de inserção) mas a saída torna-se canónica. Útil para diferenciar dois documentos JSON que deveriam ser semanticamente equivalentes (sem ordenação, as diferenças de ordem de chaves produzem diffs ruidosos), e para produzir saídas de build reproduzíveis (os mesmos dados deveriam sempre serializar-se em JSON byte-idêntico independentemente de como foram construídos em memória).

Os meus documentos JSON são carregados para servidor?

Não. Todo o parsing, validação, formatação, ordenação e renderização da árvore acontece no seu navegador via JSON.parse() e JavaScript. O JSON colado nunca atravessa a rede. Verifique no separador Rede das DevTools enquanto clica em Format (não dispara nenhum pedido), ou ponha a página offline (modo de avião) após o carregamento. Seguro para respostas de API proprietárias, configuração interna, JSON contendo tokens ou dados de sessão, ou qualquer coisa coberta por NDA.

Ferramentas relacionadas