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
- 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.
- O JSON aparece à direita enquanto você digita; se surgir um erro como "invalid character", confira a linha e a coluna informadas.
- 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".