Formatador JSON online
O formatador de JSON organiza um texto JSON com indentação legível, minifica quando você precisa de um tamanho menor e aponta onde está o erro de sintaxe. Tudo é processado no seu navegador: o JSON colado não é enviado a nenhum servidor.
O JSON colado é processado no seu navegador e não é enviado a nenhum servidor.
Achou um resultado errado ou tem uma sugestão? Avise por e-mail.
Como usar
- Cole o JSON no campo da esquerda.
- Escolha a indentação (2 espaços, 4 espaços ou tabulação) e, se quiser, ordenar as chaves.
- Clique em Formatar para deixar legível ou em Minificar para remover espaços e quebras de linha.
- Clique em Copiar para levar o resultado para o seu código.
Como funciona
A ferramenta lê o texto com o interpretador de JSON do próprio navegador e o reescreve com a indentação escolhida. Se o texto não for um JSON válido, ela mostra a mensagem de erro e, quando o navegador informa a posição, a linha e a coluna.
O JSON é mais rígido que um objeto JavaScript: as chaves e os textos precisam de aspas duplas, não são permitidas aspas simples, vírgula sobrando no final nem comentários.
Como o navegador lê números como ponto flutuante de 64 bits, inteiros muito grandes (acima de 9.007.199.254.740.991) podem perder precisão. Se a sua API usa IDs desse tamanho, mantenha-os como texto: a ferramenta mostra um aviso quando encontra um número que seria arredondado. Quando há chaves repetidas no mesmo objeto, vale o último valor.
Em código
Para formatar e validar JSON em código, leia o texto e escreva de novo com recuo, tratando o erro de leitura. No PHP, use as opções que mantêm acentos e barras.
function formatarJSON(texto, espacos = 2) {
return JSON.stringify(JSON.parse(texto), null, espacos);
}
function validarJSON(texto) {
try {
JSON.parse(texto);
return { valido: true };
} catch (erro) {
return { valido: false, mensagem: erro.message };
}
} import json
def _recusar(nome):
raise ValueError(f"{nome} não é JSON válido")
def formatar_json(texto: str, espacos: int = 2) -> str:
# parse_constant: o Python aceitaria NaN e Infinity, que o JSON não permite
dados = json.loads(texto, parse_constant=_recusar)
return json.dumps(dados, indent=espacos, ensure_ascii=False)
def validar_json(texto: str) -> dict:
try:
json.loads(texto, parse_constant=_recusar)
return {"valido": True}
except json.JSONDecodeError as e:
return {"valido": False, "mensagem": e.msg, "linha": e.lineno, "coluna": e.colno}
except ValueError as e:
return {"valido": False, "mensagem": str(e)} Recusa NaN e Infinity, que o Python aceitaria.
<?php
function formatarJson(string $texto): string
{
$dados = json_decode($texto, false, 512, JSON_THROW_ON_ERROR);
// Sem as duas últimas opções, o PHP escreveria \u00e7 no lugar de ç
// e \/ no lugar de /
return json_encode(
$dados,
JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES
);
}
function validarJson(string $texto): array
{
try {
json_decode($texto, false, 512, JSON_THROW_ON_ERROR);
return ['valido' => true];
} catch (JsonException $e) {
return ['valido' => false, 'mensagem' => $e->getMessage()];
}
} Perguntas frequentes
Por que meu JSON dá erro?
Os motivos mais comuns são aspas simples no lugar de duplas, vírgula depois do último item, chaves sem aspas, comentários e texto solto antes ou depois do JSON. A mensagem de erro e a posição indicada ajudam a achar o ponto exato.
O JSON que eu colo é enviado para algum servidor?
Não. A formatação acontece no seu navegador, e o conteúdo não é enviado nem armazenado pelo PraDev. Mesmo assim, evite colar segredos em qualquer ferramenta se não precisar.
Qual a diferença entre formatar e minificar?
Formatar adiciona quebras de linha e indentação para facilitar a leitura. Minificar remove todo espaço desnecessário para reduzir o tamanho, o que é útil em requisições e arquivos de configuração.
Ordenar as chaves altera o significado do JSON?
Não. A ordem das chaves em um objeto JSON não tem significado. Ordenar em ordem alfabética só facilita comparar dois JSONs. A ordem dos itens dentro de listas (arrays) é mantida.
Outras ferramentas que podem ajudar
- Codificar Base64Converta texto para Base64 online, com suporte a acentos (UTF-8) e opção URL-safe
- Decodificar Base64Decodifique Base64 para texto online, com suporte a UTF-8 e Base64 URL-safe
- Gerador de UUIDGere UUID v4 aleatório com um clique: em lote, em maiúsculas, com ou sem hífens
- Conversor de Timestamp UnixConverta timestamp Unix (segundos ou milissegundos) em data e hora, e data em timestamp
- Testador de RegexTeste expressões regulares online: destaque dos casamentos, grupos e flags
- Comparador JSONCompare dois JSON online e veja o caminho de cada chave adicionada, removida ou alterada