Formatador JSON
Formate ou minifique JSON e veja exatamente onde uma entrada inválida falha.
A saída aparecerá aqui
O que este formatador de JSON faz
JSON (JavaScript Object Notation) é o formato mais comum para mover dados estruturados entre programas: respostas de API, arquivos de configuração, linhas de log e mais. Foi projetado para ser compacto, o que também o torna difícil de ler quando os objetos aninham alguns níveis ou chegam em uma única linha. Esta ferramenta pega qualquer JSON que você cola e o reescreve de duas formas: embelezado, com indentação consistente para que a estrutura fique óbvia num relance, ou minificado, sem cada espaço opcional para ser o menor possível ao enviar.
Ela também valida enquanto formata. Como analisa o texto antes de reserializá-lo, um JSON inválido nunca produz uma saída enganosa — em vez disso você recebe a linha e a coluna exatas onde a análise falhou, para ir direto ao problema.
Embelezar vs. minificar: quando usar cada um
Os dois modos têm objetivos opostos, e a maioria dos fluxos de trabalho usa ambos em etapas diferentes:
- Embeleze quando você lê ou depura: inspecionar uma resposta de API, comparar dois payloads ou revisar um arquivo de configuração em um pull request. A indentação transforma um muro de texto em uma árvore navegável.
- Minifique quando você envia: incorporar JSON em HTML, guardá-lo em um cookie ou cache, ou mandá-lo no corpo de uma requisição onde cada byte conta. O JSON minificado é exatamente os mesmos dados, apenas sem os espaços.
O seletor de indentação (2 espaços, 4 espaços ou tabulação) só afeta a saída embelezada. Dois espaços é a convenção mais comum em JavaScript e no tooling web; quatro espaços ou tabulações servem a equipes que os preferem. Qualquer que seja a escolha, o resultado continua sendo JSON válido — a indentação é puramente cosmética.
Ler os erros de validação
Quando o JSON é inválido, a ferramenta reporta a linha e a coluna do primeiro problema em vez de uma mensagem vaga de "inválido". As mensagens de erro dos motores diferem entre navegadores e frequentemente omitem uma posição, então a localização é calculada de forma independente e aponta para um ponto razoável para começar. Corrija o primeiro erro e verifique de novo — um único caractere solto costuma gerar vários problemas aparentes.
Erros comuns de JSON
JSON é mais rígido que os objetos literais de JavaScript com os quais se parece. Estes são os erros que mais confundem:
- Vírgulas finais: uma vírgula após o último item de um objeto ou array é válida em JavaScript, mas não em JSON.
- Aspas simples: as strings e chaves JSON devem usar aspas duplas. 'valor' é inválido; "valor" é correto.
- Chaves sem aspas: toda chave de objeto deve ser uma string entre aspas, então { name: "x" } deve virar { "name": "x" }.
- Comentários: JSON não tem sintaxe de comentário. // e /* */ causarão um erro de análise.
- Números especiais: NaN, Infinity e -Infinity não são números JSON válidos.
- Aspas erradas: as "aspas tipográficas" coladas de um processador de texto parecem aspas, mas são caracteres diferentes e não serão analisadas.
Perguntas frequentes
- Meu JSON é enviado para um servidor?
- Não. A análise, a validação e a formatação acontecem todas no seu navegador com JavaScript. Nada do que você cola é enviado, armazenado ou registrado, então é seguro usar com payloads sensíveis.
- A formatação muda meus dados?
- Não. Embelezar e minificar apenas adicionam ou removem espaços entre os tokens. As chaves, valores, números e a estrutura são idênticos — só a disposição muda.
- Por que ele reordena ou reformata meus números?
- A ferramenta analisa o JSON em valores reais e os reserializa, então os números são normalizados à sua forma canônica (por exemplo, 1e3 vira 1000). O valor não muda; só a representação textual dele é padrão.
- Ele consegue lidar com arquivos JSON muito grandes?
- Ele lida com payloads grandes, mas como tudo roda no navegador, arquivos extremamente grandes (dezenas de megabytes) podem ficar lentos ou atingir limites de memória dependendo do seu dispositivo.
- Ele preserva a ordem das chaves do objeto?
- Sim. A ordem das chaves é mantida exatamente como aparece na sua entrada — a ferramenta não ordena as chaves.
- Qual é a diferença entre JSON e um objeto JavaScript?
- JSON é um formato de texto para troca de dados; um objeto JavaScript é um valor na memória. JSON é mais rígido: exige chaves e strings entre aspas duplas, proíbe vírgulas finais e comentários, e só admite um conjunto fixo de tipos de valor (strings, números, booleanos, null, arrays e objetos).
- Posso formatar JSON5 ou JSONC (JSON com comentários)?
- Não. Esta ferramenta valida JSON estrito e padrão. JSON5 e JSONC adicionam comentários e outras conveniências que não fazem parte da especificação do JSON, então serão reportados como erros.