Formatador e conversor JSON

Formate, valide, minifique e converta JSON.

O formulário interativo fica disponível quando o JavaScript está ativo.

Como usar

Cole o JSON e escolha uma ação. “Formatar” indenta o conteúdo com 2 ou 4 espaços ou com tabulações; “Validar” verifica a sintaxe e mostra o tipo do valor raiz, quantas chaves ou elementos de nível superior ele contém (sem contar os aninhados) e o número de caracteres; “Minificar” remove todos os espaços em branco desnecessários; “Visualização em árvore” mostra objetos e listas aninhados como uma árvore recolhível. Ctrl+Enter (Cmd+Enter no Mac) na caixa de entrada formata o JSON.

A validação segue o padrão JSON (RFC 8259) tal como o seu navegador o interpreta. Nomes de propriedades e strings precisam de aspas duplas; true, false e null são escritos em minúsculas; vírgulas finais, comentários, aspas simples, NaN e Infinity não são permitidos. Quando a análise falha, a mensagem de erro explica o motivo e, quando o navegador informa uma posição (o Chrome e o Firefox informam na maioria dos erros), a linha e a coluna em que a análise parou.

Formatar e minificar leem os dados e os escrevem de novo, então algumas coisas podem mudar além dos espaços: números inteiros maiores que 9.007.199.254.740.991 podem perder precisão, números com mais de cerca de 17 algarismos significativos são arredondados, números grandes demais para o JavaScript (como 1e400) viram null, 1.0 vira 1 e 1e3 vira 1000, uma chave que aparece duas vezes no mesmo objeto fica só com o último valor, chaves que parecem números inteiros (como "1" ou "10") vão para o início do objeto em ordem numérica, e a maioria dos escapes \u vira os caracteres que representam. Guarde IDs longos como strings para mantê-los exatos.

A conversão JSON → CSV transforma uma lista de objetos em uma linha por objeto, com um cabeçalho formado por todas as chaves, na ordem em que aparecem pela primeira vez; valores ausentes e valores null viram, ambos, células vazias, e objetos ou listas aninhados são escritos na célula como JSON. Um único objeto vira uma linha, e uma lista de valores simples vira uma única coluna chamada value. Escolha vírgula, ponto e vírgula ou tabulação como separador; planilhas de países que usam vírgula decimal costumam esperar o ponto e vírgula.

A conversão JSON → YAML escreve todos os valores de string entre aspas duplas e coloca entre aspas chaves como yes, no, on, off, true, false e null, para que parsers de YAML 1.1 não as leiam como true, false ou null. Tudo roda no seu navegador; nada é enviado.

Exemplo

Formata o objeto de exemplo com indentação. Os valores continuam iguais; só a apresentação muda.

  • {"name":"Ana","active":true}É formatado como um objeto indentado com duas propriedades.
  • {"name":"Ana",}JSON inválido por causa da vírgula final. Os navegadores que informam a posição apontam para a linha 1, coluna 15.
  • [{"id":1,"tags":["a","b"]},{"id":2,"name":"Ana"}]CSV com três colunas: id, tags e name. A célula tags contém a lista como texto JSON entre aspas, e o name ausente do primeiro objeto é uma célula vazia.
  • {"id":12345678901234567890}Válido, mas a formatação escreve 12345678901234567000: o número ultrapassa a precisão de um número do JavaScript.
  • {"country":"no"}YAML: country: "no", entre aspas para continuar sendo uma string.

Perguntas frequentes

A formatação altera meus dados?

Normalmente, só os espaços em branco. As exceções são números muito grandes ou muito precisos, números escritos como 1.0 ou 1e3, chaves duplicadas, chaves que parecem números inteiros (que vão para o início) e escapes \u, que são reescritos na forma padrão. Valores que precisam permanecer exatos, como IDs longos, devem ser strings.

Posso usar comentários ou vírgulas finais?

Em JSON, não. O JSON5 permite os dois, e o JSONC permite comentários e, em alguns parsers, vírgulas finais, mas os parsers de JSON padrão os rejeitam. Remova-os antes de validar.

Por que meu objeto funciona no JavaScript, mas falha aqui?

Um literal de objeto JavaScript aceita chaves sem aspas, aspas simples, vírgulas finais e comentários. O JSON não aceita nada disso.

Meu JSON é enviado para algum lugar?

Não. A análise e a conversão acontecem localmente no seu navegador.

Ferramentas relacionadas