A resposta da API vem em uma linha só, com 40 KB, e o carregador de configuração a recusa sem dizer por quê. Cole o texto neste formatador de JSON e a linha de status informa na hora se ele é interpretado. Um clique em um dos botões de formatar mostra então como os dados se aninham.
A verificação é o próprio JSON.parse do navegador. O texto que passa aqui passa também em JavaScript.
Usando o formatador de JSON, botão por botão
- O editor abre com um pequeno exemplo já indentado. Limpar esvazia o editor, e Carregar exemplo traz o exemplo de volta. Substitua-o pelo seu próprio texto.
- Observe a linha de status sob o editor enquanto digita. Ela alterna entre "JSON válido" e "JSON inválido" e mostra o tamanho. Depois de um erro, uma caixa vermelha acima do editor cita a mensagem do interpretador.
- Aperte Formatar (2 espaços) ou Formatar (4 espaços) para trocar o texto pela versão indentada. Se o texto for inválido, nada é substituído e a caixa de erro permanece.
- Minificar escreve uma linha sem espaços em branco, o que é útil antes de colar um exemplo em um comando
curlou em uma variável de ambiente de uma linha. Ordenar chaves (A-Z) ordena as chaves de todos os objetos e indenta o resultado com 2 espaços. - Copiar copia o texto do editor. Baixar .json o salva como
data.json.
Por que 1.0 vira 1
A ferramenta não embaralha o seu texto. Ela o interpreta como valores JavaScript e escreve esses valores de novo. Isso explica a maioria das surpresas. 1.0 volta como 1. O inteiro 12345678901234567890 volta como 12345678901234567000, porque os números do JavaScript são doubles e perdem dígitos acima de 9007199254740991. Guarde IDs muito longos como strings.
Se um objeto tiver a mesma chave duas vezes, o interpretador fica com o último valor. Depois de formatar, o primeiro valor se foi. Compare o resultado com o original antes de fazer o commit.
Chaves ordenadas: Zebra antes de abelha
Duas versões de um arquivo de tradução parecem diferentes, mas você suspeita de que só a ordem das chaves mudou. Ordene as duas, passe para uma ferramenta de diff, e restam só as mudanças reais. A ordenação vale em todos os níveis. Arrays mantêm a ordem, porque a ordem dos itens pode ter significado.
A ordem é pelo código do caractere, não pelo dicionário, então "Zebra" vem antes de "abelha". Chaves que parecem inteiros, como "10", sempre aparecem primeiro. O próprio JavaScript faz isso, e a ordenação não consegue mudá-lo.
Estrito é estrito, e não há desfazer
Só JSON estrito é aceito. Estes casos são erros, embora o JavaScript ou o JSON5 os aceitem:
- comentários
- uma vírgula depois do último item, o motivo mais comum de uma caixa vermelha
- aspas simples em vez de
", e chaves sem aspas
Não é possível indentar com tabulações, e os botões de formatar sobrescrevem o texto do editor, então guarde uma cópia do original. A página não define limite de tamanho, mas interpreta na thread principal. Um arquivo de várias dezenas de megabytes pode travar a aba por um tempo. A redação dos erros difere entre Chrome, Firefox e Safari.
Nenhuma requisição sai quando você aperta Formatar
Interpretar e formatar são JavaScript na própria página. Abra a aba Rede das ferramentas de desenvolvedor e clique em qualquer botão: nada é enviado. A ferramenta não grava o seu texto no armazenamento do navegador. Copiar usa a área de transferência, e Baixar cria o arquivo no seu dispositivo. Só a página em si veio do servidor, uma vez.