Formate, valide e minifique JSON. Highlight de sintaxe e detecção de erros em tempo real.
JSON (JavaScript Object Notation) é o formato universal para troca de dados entre sistemas. Toda API REST moderna, arquivos de configuração (`.prettierrc`, `package.json`) e até bancos de dados NoSQL (MongoDB) usam JSON. Ele é legível por humanos, mas quando retornado "minificado" (sem espaços ou quebras de linha), torna-se uma parede de texto impossível de analisar.
O ato de formatar (beautify) um JSON adiciona indentação (espaços ou tabs) para revelar a hierarquia dos dados. Isso é essencial para depurar APIs, encontrar erros de sintaxe e entender a estrutura dos dados que você está recebendo.
Exemplo Visual:
Minificado: {"status":"ok","data":[{"id":1}]}
Formatado: revela instantaneamente que há um array chamado "data" dentro de um objeto principal. A leitura fica 10x mais rápida.
O JSON é extremamente rígido com sua sintaxe. Diferente do JavaScript (que é permissivo), o JSON não aceita deslizes. Nossa ferramenta sublinha exatamente onde está o erro.
| Erro Comum | Código Inválido (Errado) | Código Válido (Correto) |
|---|---|---|
| 1. Vírgula Final (Trailing Comma) | { "nome": "Ana", } ou [1, 2, ] | { "nome": "Ana" } (Remova a última vírgula). |
| 2. Chaves sem Aspas Duplas | { nome: "Ana" } | { "nome": "Ana" } (Chaves DEVEM ter aspas duplas). |
| 3. Aspas Simples | { 'nome': 'Ana' } | { "nome": "Ana" } (Apenas aspas duplas são válidas). |
| 4. Comentários | { //usuário\n "nome": "Ana" } | JSON Oficial NÃO ACEITA COMENTÁRIOS. (Formato JSONC ou JSON5 aceitam). |
| 5. Último Valor do Tipo Errado | { "valor": NaN } ou undefined | Use null para valores vazios. NaN não existe em JSON. |
Dica de Ouro: Se você está copiando JSON do console do navegador (Console do Chrome), cuidado! O console muitas vezes formata objetos de um jeito "bonito" que não é JSON válido (ex: mostra aspas simples ou colapsa objetos). Sempre use a função JSON.stringify(objeto, null, 2) para obter um JSON válido para colar aqui.
| Tipo | Exemplo | Observação |
|---|---|---|
| String | "Olá Mundo" | Deve estar entre aspas duplas. |
| Number | 42, 3.14, -10 | Inteiro ou decimal. Sempre sem aspas. |
| Boolean | true / false | Minúsculas, sem aspas. |
| Null | null | Representa valor vazio/intencionalmente ausente. |
| Array | ["Maçã", "Banana"] | Lista ordenada de valores. |
| Object | { "chave": "valor" } | Conjunto de pares chave/valor. |
Esta ferramenta é a porta de entrada. Conheça outras ferramentas do nosso ecossistema para dominar JSON:
| Necessidade | Ferramenta Recomendada |
|---|---|
| Converter JSON para Excel/CSV | JSON → Excel (Achata objetos aninhados para planilhas). |
| Converter JSON para YAML (Docker/K8s) | YAML ↔ JSON (Ideal para arquivos de configuração). |
| Gerar dados falsos para testes | Gerador de CPF/CNPJ + esta ferramenta. |
| Comparar duas versões de JSON | Diff de Texto (Compare lado a lado com highlight). |
undefined e aspas simples. JSON não.JSON.stringify(obj) (Objeto → JSON) e JSON.parse(str) (JSON → Objeto)."{\\"nome\\":\\"Ana\\"}". Para resolver:
\n\t\"\\{ "mensagem": "Primeira linha\nSegunda linha" }
tsconfig.json ou .eslintrc que contém comentários, a validação falhará. Para esses casos, use o Visual Studio Code (que suporta JSONC nativamente) ou nossa ferramenta Remover Duplicatas (brincadeira!). Em breve teremos um suporte específico para JSONC.
JSON é um formato rigoroso: um único caractere fora do lugar invalida todo o documento. Ao contrário do JavaScript, do qual o JSON deriva, o formato não aceita comentários, vírgulas finais, aspas simples ou valores especiais como undefined, NaN e Infinity. Conhecer os erros mais frequentes economiza tempo de depuração, especialmente ao integrar APIs de terceiros ou processar dados exportados de planilhas.
| Erro | Exemplo Errado | Correção |
|---|---|---|
| Trailing comma (vírgula final) | {"nome": "Ana",} | {"nome": "Ana"} — remova a última vírgula |
| Aspas simples em vez de duplas | {'nome': 'Ana'} | {"nome": "Ana"} — JSON exige aspas duplas |
| Chave sem aspas | {nome: "Ana"} | {"nome": "Ana"} — toda chave deve ser string com aspas duplas |
| Valor undefined | {"ativo": undefined} | {"ativo": null} — use null para ausência de valor |
| NaN / Infinity | {"taxa": NaN} | {"taxa": null} ou {"taxa": 0} — use null ou valor numérico válido |
O JSON é o formato padrão de resposta das principais APIs públicas brasileiras. Conhecer a estrutura de retorno dessas APIs acelera o desenvolvimento de integrações e evita erros de parsing. Todas as APIs abaixo são gratuitas, sem necessidade de cadastro (exceto a da Receita Federal, que é pública mas tem limites de taxa).
ViaCEP (viacep.com.br/ws/01310100/json/) retorna dados de endereço como logradouro, bairro, localidade e UF a partir de um CEP. BrasilAPI (brasilapi.com.br/api/) é uma API unificada que consolida dados de CEP, bancos, CNPJ, feriados nacionais, DDDs e muito mais. A API do IBGE (servicodados.ibge.gov.br/api/v1/) oferece dados sobre municípios, estados, indicadores e séries históricas do SIDRA. A API da Receita Federal permite consultas de CNPJ e retorna razão social, situação cadastral e atividades econômicas (CNAE).
Content-Type obrigatório em APIs REST: Ao enviar dados JSON para uma API (métodos POST, PUT, PATCH), o header Content-Type: application/json é obrigatório. Sem ele, muitos servidores interpretam o corpo da requisição como texto simples ou form-data, causando erros 400 (Bad Request) ou falhas de parsing. Além disso, defina o header Accept: application/json para garantir que o servidor retorne JSON mesmo quando suporta múltiplos formatos. Em JavaScript, use JSON.stringify(data) no corpo e JSON.parse(response) ao receber — nunca avalie JSON com eval(), pois isso cria vulnerabilidade de execução de código arbitrário.
JSON Schema é um padrão (RFC draft) que permite definir e validar a estrutura esperada de um documento JSON. Com ele, você especifica quais campos são obrigatórios, seus tipos de dados, valores mínimos e máximos, formatos (como e-mail, URI, data) e expressões regulares para strings. É amplamente usado em APIs REST para documentar contratos de dados, em ferramentas como Swagger/OpenAPI e em IDEs para autocompletar configurações JSON (como o VS Code usa JSON Schema para validar package.json, tsconfig.json e settings.json).
Um schema básico define: type (object, array, string, number, boolean, null), properties (definição de cada campo), required (lista de campos obrigatórios) e additionalProperties (se campos extras são permitidos). Bibliotecas como jsonschema (Python), ajv (Node.js) e json-schema-validator (Java) realizam a validação em tempo de execução, retornando mensagens de erro detalhadas sobre qual campo violou qual regra. Isso transforma erros obscuros de parsing em mensagens claras como “campo 'cpf' deve ter exatamente 11 caracteres numéricos”, melhorando drasticamente a experiência de depuração e a qualidade das integrações entre sistemas.