Como formatar e validar JSON online

· 7 min de leitura

Se voce trabalha com APIs, arquivos de configuracao ou qualquer tipo de dados estruturados, lida com JSON regularmente. E se voce ja olhou para uma parede de JSON minificado tentando encontrar um colchete faltante, sabe por que a formatacao importa. Um formatador baseado em navegador lida com todo o trabalho localmente sem enviar seus dados para um servidor.

O que a formatacao JSON faz

O JSON bruto de uma resposta API ou um arquivo minificado se parece com isto:

{"users":[{"name":"Alice","age":30,"roles":["admin","editor"]},{"name":"Bob","age":25,"roles":["viewer"]}]}

Um formatador o transforma em algo legivel:

{
  "users": [
    {
      "name": "Alice",
      "age": 30,
      "roles": ["admin", "editor"]
    },
    {
      "name": "Bob",
      "age": 25,
      "roles": ["viewer"]
    }
  ]
}

Os mesmos dados, mas agora voce pode realmente le-los, identificar erros e entender a estrutura.

Como formatar JSON online

  1. Cole seu JSON no campo de entrada. O formatador detectara imediatamente erros de sintaxe e validara a estrutura.
  2. Escolha sua indentacao: selecione 2 ou 4 espacos, ou clique em Minificar para comprimir o JSON em uma unica linha.
  3. Copie o resultado: a saida formatada inclui destaque de sintaxe codificado por cores. Copie-o para usar em seu codigo, arquivo de configuracao ou documentacao.

Uma breve historia do JSON

JSON (JavaScript Object Notation) foi especificado por Douglas Crockford em 2001, formalmente documentado no RFC 4627 (2006), e padronizado como ECMA-404 em 2013 e ISO/IEC 21778 em 2017. Crockford nao inventou o JSON: ele o extraiu de um subconjunto da sintaxe literal de objeto JavaScript que ja estava em uso, e deu a ele um nome e uma especificacao de uma pagina em json.org.

JSON rapidamente deslocou XML para APIs web porque e dramaticamente mais simples. Uma resposta XML e verbosa com tags de abertura/fechamento; o JSON equivalente tem metade do tamanho. Os navegadores podem analisar JSON nativamente (JSON.parse, JSON.stringify desde ECMAScript 5 em 2009) sem analisador XML necessario.

Em 2015, cada API principal do mundo falava JSON: APIs REST, consultas GraphQL, mensagens WebSocket, arquivos de configuracao (package.json, tsconfig.json, .vscode/settings.json), e ate bancos de dados (PostgreSQL JSONB, MongoDB BSON que e tipo JSON). Tornou-se a lingua franca dos dados estruturados na web.

A simplicidade do JSON e tambem sua limitacao: sem comentarios, sem virgulas finais, sem tipo de data, sem suporte binario. Varias variantes JSON surgiram para abordar essas lacunas (veja «Formatos alternativos tipo JSON» abaixo).

Erros comuns de JSON e como detecta-los

A maioria dos erros JSON se resume a alguns erros comuns:

Um bom formatador destaca exatamente onde o erro esta, para que voce possa corrigi-lo imediatamente em vez de adivinhar.

Tipos de dados JSON

JSON tem exatamente 6 tipos de dados:

TipoExemploNotas
String"hello"Sempre aspas duplas, suporta \n, \t, \\, \", \uXXXX
Numero42, 3.14, -1e10Sem NaN ou Infinity, sem zeros iniciais
Booleanotrue, falseApenas minusculas
nullnullApenas minusculas
Array[1, 2, 3]Ordenado, qualquer tipo, separado por virgulas
Objeto{"key": "value"}As chaves devem ser strings entre aspas, separadas por virgulas

Notavelmente faltando: datas (use strings ISO 8601), dados binarios (use strings Base64), comentarios (use um campo de documentacao separado), e bigint (numeros JSON sao de precisao dupla; valores >= 2^53 perdem precisao).

Quando formatar vs minificar

Formatar (pretty-print) quando voce precisa:

Minificar quando voce precisa:

A diferenca de tamanho e significativa: um JSON tipico de 50 KB pretty-printed minifica para cerca de 30 KB. Para APIs de alto trafego, respostas minificadas economizam largura de banda. Para arquivos editados por humanos, formatado e essencial.

Formatos alternativos tipo JSON

Quando a rigidez do JSON e um problema, varias variantes relaxam as regras:

FormatoAdiciona sobre JSONMelhor uso
JSON5Comentarios, virgulas finais, aspas simples, chaves sem aspasArquivos de configuracao onde humanos editam
JSONCApenas comentarios (// e /* */)Configuracoes VS Code, tsconfig.json
HJSONComentarios, strings sem aspas, strings multilinhaConfigs amigaveis para humanos
JSON Lines (NDJSON)Um objeto JSON por linha, sem array envolventeArquivos de log, streaming
YAMLBaseado em indentacao, comentarios, ancoras, referenciasKubernetes, GitHub Actions
TOMLSintaxe tipo INI, datas, comentariosCargo.toml, pyproject.toml
BSONJSON binario com tipos extras (Date, ObjectId, Binary)Armazenamento interno do MongoDB
CBOR (RFC 8949)Formato binario otimizado para tamanhoAPIs de dispositivos restritos
MessagePackTipo JSON binario, compactoSerializacao API interna

Para intercambio de dados (respostas API, configuracao), mantenha-se com JSON estrito. Para configuracao editada por humanos, JSON5 ou JSONC sao mais amigaveis. Para streaming de dados, NDJSON e o padrao de facto.

Armadilhas comuns

Dicas para trabalhar com JSON

Privacidade e JSON confidencial

O formatador JSON roda inteiramente no seu navegador. O JSON que voce cola, o processamento intermediario e a saida formatada ficam todos no seu dispositivo. Nada e enviado para um servidor, registrado ou compartilhado com ninguem.

Isso importa porque JSON frequentemente contem dados extremamente sensiveis: respostas API com registros de clientes e enderecos de e-mail, tokens de autenticacao e dados de sessao, esquemas API internos que revelam a arquitetura do produto, arquivos de configuracao com senhas de banco de dados, dados financeiros de APIs de contabilidade, registros medicos de APIs FHIR, estrutura interna da empresa de APIs de RH, cargas uteis de depuracao com rastreamentos de pilha revelando infraestrutura. Formatadores JSON em nuvem registram cada colagem em seus logs de solicitacao, as vezes os retem para «melhoria do servico», e estiveram envolvidos em incidentes reais onde respostas API coladas vazaram dados de clientes e chaves API. Um formatador baseado em navegador tem exposicao zero: o JSON nunca sai da sua maquina.

A formatacao baseada em navegador tambem funciona offline depois que a pagina e carregada, util para formatar JSON em avioes, em ambientes seguros sem acesso a internet, ou em qualquer lugar onde voce nao pode ou nao deveria colar dados API (especialmente com credenciais incorporadas) em um servico de terceiros.

Perguntas frequentes

O formatador consegue lidar com arquivos JSON grandes?

Sim. Como a ferramenta roda no seu navegador, ela consegue lidar com arquivos de dezenas de milhares de linhas. O desempenho depende do seu dispositivo, mas a maioria dos navegadores modernos lida com JSON grande sem problemas.

Isso funciona offline?

Sim. Depois que a página é carregada, a ferramenta funciona inteiramente no seu navegador sem precisar de conexão com a internet. Todo o processamento é feito localmente com JavaScript.

Qual a diferença entre formatar e validar?

Formatar adiciona indentação e quebras de linha adequadas para tornar o JSON legível. Validar verifica se a estrutura do JSON está correta, colchetes correspondentes, aspas adequadas, tipos de dados válidos. A maioria dos formatadores faz ambos ao mesmo tempo.

Posso usar isso no meu celular?

Sim. A ferramenta funciona em qualquer dispositivo com um navegador moderno, incluindo celulares e tablets.