Pular para o conteúdo

Converter objetos JSON5 em JSON — Numio

Converte um literal de objeto JavaScript em JSON estrito com indentação de 2 espaços. Chaves sem aspas, aspas simples, comentários, vírgulas finais, números hexadecimais e decimais iniciados por ponto são aceitos e normalizados.

Copiar um objeto de configuração ou de fixture de um arquivo .js para um arquivo JSON, o corpo de uma requisição de API ou uma coleção do Postman.

Aceita JSON e JSON5, incluindo comentários, aspas simples e vírgulas finais. Não executa funções nem expressões JavaScript.

JS Object

JSON

Quando usar

  • Copiar um objeto de configuração ou de fixture de um arquivo .js para um arquivo JSON, o corpo de uma requisição de API ou uma coleção do Postman.
  • Limpar um objeto colado das DevTools do navegador ou de uma documentação para que ele passe em um parser JSON estrito.

Como usar

  1. Cole o literal de objeto (apenas os dados, sem declaração de variável nem ponto e vírgula final) no editor da esquerda ou use o botão de carregar arquivo para abrir um arquivo UTF-8.
  2. O JSON aparece à direita enquanto você digita; se surgir um erro como "invalid character", confira a linha e a coluna informadas.
  3. Revise os valores convertidos (hexadecimais viram decimais e as aspas viram aspas duplas) e copie o resultado.

Literal de objeto JavaScript

{
  // Mongoose-style field definition
  title: {
    type: 'String',
    required: true,
  },
  year: { type: 'Number', max: 0x7E6 },
  tags: ['draft', 'review',],
  ratio: .75,
  'content-type': "text/plain",
}

JSON

{
  "title": {
    "type": "String",
    "required": true
  },
  "year": {
    "type": "Number",
    "max": 2022
  },
  "tags": [
    "draft",
    "review"
  ],
  "ratio": 0.75,
  "content-type": "text/plain"
}

Detalhes e limitações

A entrada é analisada pelo parser JSON5 no seu navegador; o código nunca é executado. Expressões, funções, new Date(), template literals, undefined e referências a variáveis são rejeitados como caracteres inválidos.

NaN e Infinity são rejeitados com erro, porque JSON não consegue representá-los.

Comentários e a formatação original das chaves não são mantidos; a saída sempre usa aspas duplas e indentação de 2 espaços.

Inteiros acima de 2^53 perdem precisão (12345678901234567890 vira 12345678901234567000). Coloque IDs grandes entre aspas como strings.

FAQ

Posso colar const config = { ... };?

Não. Só o valor é aceito. Remova a declaração e o ponto e vírgula final; caso contrário, o parser informa um caractere inválido nessa posição.

O que acontece com chaves duplicadas?

A última ocorrência prevalece. {a: 1, a: 2} vira {"a": 2} sem nenhum aviso, então confira objetos mesclados à mão.

Aceita arrays ou valores simples na raiz?

Sim. Qualquer valor JSON5 funciona; por exemplo, [1, 2,] vira um array JSON de dois elementos e 'hi' vira "hi".

Especificações e referências