Formatador JSON

Formate ou minifique JSON e veja exatamente onde uma entrada inválida falha.

Indentação
Entrada
Saída

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.