O que faz
JSON5 é uma extensão do JSON criada para arquivos escritos à mão. Ela permite comentários, vírgulas finais, chaves de objeto sem aspas, strings com aspas simples e alguns formatos numéricos mais práticos. Ferramentas como o Babel, alguns bundlers e muitos aplicativos aceitam JSON5 ou JSONC (JSON com comentários, usado pelo tsconfig.json e pelas configurações do VS Code) como formato de configuração.
Muitos parsers, APIs e linguagens, porém, só aceitam JSON estrito. Este conversor lê JSON5 ou JSONC e gera JSON padrão que qualquer parser aceita: todas as chaves entre aspas duplas, sem comentários, sem vírgulas finais e com números em formato decimal.
Como usar
- Cole seu JSON5 ou JSONC, envie um arquivo
.json5,.jsoncou.json, ou clique em Exemplo. - Escolha a Indentação: 2 ou 4 espaços, ou Compacto para uma única linha.
- Escolha o que fazer com
InfinityeNaN: converter emnull, converter em strings ou mostrar um erro. - Copie ou baixe o JSON.
Se a entrada tiver um erro de sintaxe, a mensagem mostra a linha e a coluna para você ir direto até ele. JSON comum também é JSON5 válido, então você pode usar a ferramenta para conferir se um arquivo é analisado corretamente e reindentá-lo.
Exemplo
Esta configuração em JSON5:
// Server settings
{
host: 'localhost',
port: 0x1F90, // 8080
ratio: .5,
tags: ['api', 'v2',],
}
vira este JSON estrito:
{
"host": "localhost",
"port": 8080,
"ratio": 0.5,
"tags": [
"api",
"v2"
]
}
Os comentários são removidos, chaves e strings recebem aspas duplas, o número hexadecimal e o decimal sem parte inteira são escritos em decimal, e as vírgulas finais desaparecem.
O que é convertido
- Comentários de linha
//e de bloco/* */são removidos. - Chaves sem aspas como
porte strings com aspas simples como'localhost'passam a usar aspas duplas. - Strings continuadas com uma barra invertida no fim da linha são unidas em uma só.
- Hexadecimais (
0xFF), pontos decimais no início ou no fim (.5,5.) e sinais de mais explícitos (+3) viram números decimais comuns. - Vírgulas finais em objetos e arrays são descartadas.
- Se uma chave aparecer duas vezes, vale o último valor, como no JavaScript.
Perguntas frequentes
› Qual é a diferença entre JSON5 e JSONC?
JSONC é JSON com comentários (e, no VS Code, vírgulas finais). O JSON5 vai além: chaves sem aspas, strings com aspas simples, strings de várias linhas, números hexadecimais, pontos decimais no início ou no fim, Infinity e NaN. JSON5 é um superconjunto de JSONC, então esta ferramenta lê os dois.
› Os comentários são mantidos?
Não. O JSON padrão não tem sintaxe de comentários, então eles são removidos. Se precisar mantê-los, guarde o arquivo JSON5 como fonte e gere o JSON a partir dele.
› O que acontece com Infinity e NaN?
O JSON estrito não consegue representá-los. Por padrão eles viram null, como faz o JSON.stringify do JavaScript. Você também pode convertê-los em strings ou mostrar um erro que indica o caminho exato.
› Meus dados são enviados para algum servidor?
Não. A análise e a conversão acontecem inteiramente no seu navegador, então arquivos de configuração com segredos nunca saem do seu dispositivo.