Formatar JSON

Validar e formatar JSON. Visualização em árvore interativa. Grátis, para sempre.
JSON de entrada
JSON formatado
JSON de entrada

Privado e seguro

Tudo acontece no seu navegador. Seus arquivos nunca tocam nossos servidores.

Incrivelmente rápido

Sem upload, sem espera. Converta no momento em que você solta um arquivo.

Realmente grátis

Nenhuma conta necessária. Sem custos ocultos. Sem truques de tamanho de arquivo.

JSON—JavaScript Object Notation—é o formato ubíquo, baseado em texto, para a troca de dados estruturados. É normalizado tanto pelo IETF como RFC 8259 e pela Ecma International como ECMA-404, que, em conjunto, definem a sintaxe compacta e agnóstica da linguagem que alimenta APIs, registos, configurações e bases de dados modernas.

Sintaxe e codificação: los bits precisos que mantêm os sistemas a comunicar

Um valor JSON é um objeto, um array, uma string, um número, ou um dos literais true, false, ou null; os objetos mapeiam strings para valores e os arrays contêm valores ordenados — com espaços em branco insignificantes permitidos em torno dos caracteres estruturais (RFC 8259, ECMA-404). Embora o JSON tenha origem no JavaScript, é independente da linguagem e suportado em praticamente todo o lado (MDN: JSON). Na transmissão, a codificação de facto e recomendada é UTF-8 (RFC 8259 §8.1). Para maior segurança de interoperabilidade, o perfil I-JSON (RFC 7493) reforça as regras em torno de codificações e gamas numéricas.

Em JavaScript, o objeto global JSON expõe dois cavalos de batalha:JSON.parse (com um reviver opcional) e JSON.stringify (com substituto/espaçamento para impressão bonita), como documentado na MDN (parse, stringify).

Números: enganadoramente simples, surpreendentemente afiados

A gramática numérica do JSON é decimal, mas a especificação não dita a precisão ou as distinções entre inteiros e flutuantes. As implementações escolhem como representá-los (RFC 8259 §6). Em JavaScript e Node.js, Number é de dupla precisão IEEE-754, o que significa que apenas os inteiros em [−(2^53−1), 2^53−1] são exatamente seguros — consulte Number.MAX_SAFE_INTEGER e o tipo BigInt. É por isso que as APIs públicas enviam frequentemente os IDs como strings e validam explicitamente os "inteiros seguros".

Além do JSON baunilha: ponteiros, patches e patches de fusão

À medida que o uso amadureceu, surgiram padrões para endereçar e modificar JSON no local. JSON Pointer (RFC 6901) é uma sintaxe minúscula, delimitada por barras, para localizar valores (por exemplo, /a/b/0) com regras de escape para ~ e /. JSON Patch (RFC 6902) modela atualizações parciais como operações ordenadas (add, remove, replace, move, copy, test) e viaja como application/json-patch+json. Para diferenças mais simples, JSON Merge Patch (RFC 7386) usa uma fusão em forma de documento: os campos presentes são adicionados/substituídos; definir um campo como null elimina-o. Muitas frameworks suportam uma ou ambas as formas de origem.

Esquemas e tipos: validação e geração

O próprio JSON não tem esquema, mas os ecossistemas apoiam-se em esquemas para validação, documentação e geração de código. A família JSON Schema 2020-12 especifica restrições como type, properties, items, e palavras-chave de composição, e alinha-se com OpenAPI 3.1. Para fluxos de trabalho centrados na geração de código, JSON Type Definition (RFC 8927) oferece uma linguagem deliberadamente menos expressiva que se mapeia de forma previsível para os sistemas de tipos convencionais.

Streaming e big data: linhas e sequências de JSON

O JSON clássico espera um texto completo por carga útil, o que complica o streaming de registos e as respostas de longa duração. Dois padrões ajudam:

  • Sequências de Texto JSON (RFC 7464): um fluxo de textos JSON UTF-8, cada um prefixado pelo Separador de Registos (U+001E) e terminado com LF; registado como application/json-seq.
  • NDJSON / JSON Lines: cada linha é um valor JSON autónomo — fácil de seguir, comprimir com gzip e map-reduce (ndjson.org, jsonlines.org). É popular em APIs em massa, por exemplo, a API em Massado Elasticsearch.

Primos binários: quando o texto não é suficientemente compacto

Quando a largura de banda ou a velocidade dominam, os formatos "JSON binário" preservam o modelo de dados do JSON enquanto trocam a legibilidade humana pela eficiência:

  • BSON (formato nativo do MongoDB) adiciona tipos como binário, data/hora e inteiros tipados (bsonspec.org).
  • MessagePack é compacto e sem esquema, amplamente implementado em várias linguagens (msgpack.org).
  • CBOR normaliza um formato extensível e compacto (com orientação de transcodificação JSON) e é comum em contextos de IoT/restritos (RFC 8949, cbor.io).
  • Smile (do ecossistema Jackson) codifica JSON com referências inversas opcionais para nomes/valores repetidos (jackson-dataformat-smile).

Notas de segurança: truques antigos e correções modernas

Como o JSON é apenas texto, a maioria dos riscos advém da forma como o transporta e manuseia:

  • JSONP (solicitar dados através de <script> com um callback) foi uma solução alternativa pré-CORS para pedidos de origem cruzada, mas é perigoso — executa scripts arbitrários. Prefira CORS com respostas application/json reais (OWASP: Abuso de JSONP).
  • Sequestro de JSON: endpoints GET ingénuos que devolvem arrays sensíveis podem ser roubados através de tags de script de origem cruzada em navegadores mais antigos; as mitigações incluem POST com proteções CSRF ou prefixar com um sentinela não-JSON (OWASP: Sequestro de JSON).
  • Injeção de JSON: trate o JSON como dados, não como código; escape diligentemente e valide as entradas (OWASP: Injeção de JSON).

Tipos de multimédia e herança

O JSON estreou sob a RFC 4627 (2006); o tipo de multimédia registado é application/json, cuja especificação agora aponta para a RFC 8259. Os parâmetros "charset" nas respostas JSON são geralmente desnecessários porque o UTF-8 é o padrão na Internet pública.

Dicas práticas para um JSON robusto em produção

  • Use UTF-8 por defeito em todo o lado; assuma UTF-8 na entrada e na saída (RFC 8259 §8.1).
  • Seja explícito com inteiros grandes: se um ID puder exceder 2^53−1, envie-o como uma string e documente-o (MDN: MAX_SAFE_INTEGER).
  • Valide as cargas úteis com JSON Schema 2020-12 (ou JTD para pilhas pesadas em geração de código). Publique os esquemas junto à documentação da sua API (OpenAPI 3.1).
  • Faça patches com sabedoria: use JSON Patch para diferenças ao nível da operação e Merge Patch para atualizações simples em forma de documento.
  • Faça streaming em escala: escolha Sequências de Texto JSON ou NDJSON para registos e respostas de longa duração; torne o tipo de multimédia explícito.
  • Recorra ao binário ( BSON, MessagePack, CBOR, Smile) quando o texto for o gargalo — mas garanta que ambas as extremidades concordam nos tipos.

Uma breve palavra sobre "JSONs mais amigáveis"

Os programadores querem frequentemente comentários, vírgulas finais ou strings com aspas simples nas configurações. Isso está fora do JSON padrão, mas JSON5 fornece um superconjunto bem documentado para ficheiros editados por humanos. Evite enviar JSON5 através de APIs públicas, a menos que controle ambas as extremidades.


O sucesso do JSON advém de uma pequena área de superfície, amplo suporte de linguagens e um anel de padrões adjacentes — ponteiros, patches, esquemas, sequências — que cobrem as realidades confusas dos sistemas distribuídos. Compreenda os fundamentos (sintaxe, codificação, números), apoie-se nos padrões adjacentes corretos, e continuará a render dividendos em todas as pilhas e serviços (RFC 8259, ECMA-404, RFC 6901, RFC 6902, RFC 7386, JSON Schema, JTD, RFC 7464, NDJSON).

Perguntas frequentes

O que é JSON?

JSON (JavaScript Object Notation) é um formato leve de intercâmbio de dados fácil de ler e escrever para humanos e fácil de analisar e gerar para máquinas. É amplamente usado para transmitir dados em aplicações web.

Por que preciso formatar JSON?

Formatar JSON o torna legível para humanos adicionando indentação e quebras de linha apropriadas. Isso é especialmente útil ao trabalhar com dados JSON minificados ou comprimidos, depuração ou revisão de respostas de API.

O que a validação JSON faz?

A validação JSON verifica se sua string JSON está em conformidade com a especificação JSON. Ela identifica erros de sintaxe como vírgulas ausentes, colchetes não fechados ou aspas inadequadas, ajudando você a detectar erros cedo.

Qual é a diferença entre visualização de código e visualização em árvore?

A visualização de código exibe o JSON formatado como texto com realce de sintaxe, semelhante a como aparece em um editor de código. A visualização em árvore apresenta JSON como uma estrutura interativa e recolhível onde você pode expandir e contrair objetos e arrays aninhados.

Meus dados JSON estão seguros?

Sim! Toda a formatação e validação JSON acontece inteiramente no seu navegador. Seus dados nunca saem do seu computador, garantindo privacidade e segurança completas.

Posso carregar um arquivo JSON?

Sim, você pode carregar um arquivo JSON usando o botão 'Abrir arquivo'. A ferramenta lerá o arquivo e exibirá imediatamente a saída formatada.

Quais são os erros JSON comuns?

Os erros JSON comuns incluem: vírgulas ausentes entre pares chave-valor, uso de aspas simples em vez de aspas duplas para strings, vírgulas à direita, colchetes ou chaves não fechados e chaves sem aspas.

Posso copiar o JSON formatado?

Sim, use o botão 'Copiar' para copiar o JSON formatado para sua área de transferência. Isso é útil para colar o JSON limpo em seu código ou documentação.