DevToolPal
PT

Conversor de JSON5 para JSON

Converta JSON5 ou JSONC (comentários, vírgulas finais, chaves sem aspas, aspas simples) em JSON estrito e padrão.

Roda localmente, nada é enviado

Opções

Indentação

Entrada

0 caracteres · 0 B

Saída

0 caracteres · 0 B

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

  1. Cole seu JSON5 ou JSONC, envie um arquivo .json5, .jsonc ou .json, ou clique em Exemplo.
  2. Escolha a Indentação: 2 ou 4 espaços, ou Compacto para uma única linha.
  3. Escolha o que fazer com Infinity e NaN: converter em null, converter em strings ou mostrar um erro.
  4. 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 port e 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.