Converter objeto JavaScript em JSON estrito
Cole um objeto JavaScript com chaves sem aspas, aspas simples, comentários ou vírgula no final e receba JSON estrito e com escape. Para transformar objeto JavaScript em JSON, um analisador lê o texto e nunca o executa como código, então você pode colar texto de um console, de um arquivo de configuração ou de um exemplo de código.
Como converter objeto JavaScript em JSON
- Cole o objeto na caixa Objeto JavaScript ou JSON. Ao colar, a conversão é imediata. Se você digitar, o resultado é atualizado cerca de 300 milissegundos depois que você parar.
- Em Formato, escolha como o resultado deve ficar: Minificado (padrão, em uma única linha), 2 espaços ou 4 espaços.
- Leia o resultado em JSON estrito. Logo abaixo aparecem “Convertido para JSON estrito.” e a contagem de caracteres.
- Selecione Copiar, logo abaixo do resultado. O botão mostra Copiado por um instante.
- Selecione Limpar para esvaziar a caixa e começar de novo.
Um exemplo pequeno: você cola {name: 'Ana', tags: ['a', 'b',], id: 0xFF}. Com Minificado, o resultado é {"name":"Ana","tags":["a","b"],"id":255}.
Que sintaxe solta de JavaScript ele aceita
O texto é lido com o analisador JSON5, que entende no que um literal de objeto do JavaScript difere do JSON. Cada uma destas formas é convertida em vez de rejeitada:
- Chave sem aspas:
{name: "Ana"}vira{"name":"Ana"}. - String com aspas simples:
{a: 'x'}vira{"a":"x"}. - Vírgula no final:
[1, 2,]vira[1,2]. - Comentários:
// notae/* nota */são removidos. - Número hexadecimal:
0xFFvira255. - Sinal de mais na frente ou ponto decimal solto:
+1,.5e5.viram1,0.5e5. - NaN e Infinity:
{a: Infinity}vira{"a":null}. - Uma string dividida em várias linhas com uma barra invertida vira uma única string, sem quebra de linha.
Aspas, barras invertidas e quebras de linha dentro de uma string recebem escape automaticamente: 'He said "hi"' chega como "He said \"hi\"". O que já é JSON válido passa sem alterações, exceto pelo formato que você escolheu.
Minificar JSON online ou indentar com 2 ou 4 espaços
O menu Formato fica acima do resultado. Minificado escreve tudo em uma linha, sem espaços, o que serve para o corpo de uma requisição, para dados de teste ou para um valor que você vai colar dentro de uma string.
2 espaços e 4 espaços dão um formato indentado, mais fácil de ler e de comparar. O resultado muda assim que você escolhe, e Copiar leva o que você está vendo.
O que ele não consegue ler e a mensagem de erro
Só dados são aceitos, não código. Quando o analisador para, aparece uma caixa vermelha com o título Não foi possível ler isto, um motivo claro e a posição, por exemplo “Linha 1, coluna 6”. Com {a:1 b:2}, ele para no b e pede que você verifique se logo antes falta uma vírgula, dois-pontos, um colchete ou aspas. Se o texto terminar com um colchete, uma chave ou aspas ainda abertos, a mensagem passa a ser “O texto termina cedo demais.”
const x = {a: 1}: para na primeira letra. Cole só o objeto.{a: 1};: para no ponto e vírgula final. Remova-o.- Uma string com crases não é aceita. Use aspas simples ou duplas.
undefined, uma função ounew Date()não são aceitos: são código ou não têm forma em JSON. Escreva a data como string.- Se faltar uma vírgula, dois-pontos ou um colchete, ele para no caractere depois da lacuna e mostra a linha e a coluna.
Stringify JSON: números, chaves repetidas e outras mudanças
O resultado é produzido pelo próprio JSON.stringify do navegador, então os números são números do JavaScript. Isso tem consequências que vale conhecer antes de copiar:
- Inteiros acima de
9007199254740991perdem precisão:12345678901234567890vira12345678901234567000. 1.0vira1e0xFFvira255.- NaN, Infinity e -Infinity viram
null. - Se uma chave aparece duas vezes, o último valor é mantido.
Se os dados já são JSON válido e você só quer indentar sem mudar nenhum dígito, use o “Formatador de JSON”. Para verificar o JSON contra um esquema, use o “Validador de JSON Schema”.
Limites e privacidade
- Até 5.000.000 de caracteres. Um texto mais longo é recusado com uma mensagem que informa o limite.
- A leitura nunca executa o seu texto, então código colado não pode rodar.
- Seu texto é convertido inteiramente no seu dispositivo. Nada é enviado nem salvo.
Perguntas frequentes
Como transformar objeto JavaScript em JSON online?
Cole o objeto na caixa “Objeto JavaScript ou JSON”. Ele é convertido na hora, ao colar, ou cerca de 300 milissegundos depois que você para de digitar, e o JSON estrito aparece em “JSON estrito”. Selecione “Copiar” para levá-lo. Cole só o objeto, não uma linha como const data = {...};.
Como trocar aspas simples por aspas duplas no JSON?
Cole o texto. Cada string com aspas simples sai com aspas duplas, e uma aspa dupla dentro dela recebe escape, então 'He said "hi"' vira "He said \"hi\"". Só strings e chaves são alteradas, de modo que um apóstrofo dentro de uma string com aspas duplas fica como está.
Como tirar a vírgula do final de um JSON?
Cole o texto. Uma vírgula depois do último item de um objeto ou array, como em [1, 2,], é aceita na entrada e fica de fora do resultado em “JSON estrito”. Nada mais nos dados muda.
O JSON pode ter chaves sem aspas ou comentários?
O JSON estrito não pode: toda chave e toda string precisam de aspas duplas, e não existe sintaxe de comentário. Objetos JavaScript e arquivos de configuração costumam ter as duas coisas. Esta ferramenta lê esses casos, escreve as chaves com aspas duplas e descarta os comentários, então o resultado é um JSON válido.
JSON5 para JSON: qual é a diferença entre JSON e JSON5?
JSON5 é um superconjunto mais flexível do JSON, que permite chaves sem aspas, strings com aspas simples, vírgulas no final, comentários, números hexadecimais e mais algumas formas ao estilo do JavaScript. Esta ferramenta lê essa sintaxe e escreve JSON comum, então um documento JSON5 sem valores não suportados vira um JSON que qualquer analisador aceita.
Como minificar JSON ou indentar com 2 ou 4 espaços?
Use o menu “Formato” acima do resultado. “Minificado”, o padrão, dá uma linha sem espaços. 2 espaços e 4 espaços dão uma versão indentada. O resultado e o que “Copiar” leva mudam assim que você escolhe outra opção.
Por que aparece “Não foi possível ler isto”?
O texto não é um objeto, um array ou um valor que o analisador entende. A caixa vermelha indica onde ele parou, por exemplo “Linha 1, coluna 6”, e o que verificar: uma vírgula, dois-pontos, colchete ou aspas que faltam logo antes, ou um colchete, uma chave ou aspas que continuam abertos no final. Instruções como const x = {...}, um ponto e vírgula final, strings com crases, undefined, funções e new Date() não são aceitas. Cole só o objeto.
O JavaScript que eu colo é executado?
Não. O texto é lido por um analisador (JSON5), nunca por eval, então nada do que você colar pode rodar. É por isso também que código é rejeitado: uma função, o nome de uma variável ou new Date() é um erro, não algo para avaliar.
Como fazer escape de JSON online com aspas e quebras de linha?
Você não precisa fazer nada. Uma aspa, uma barra invertida ou uma quebra de linha dentro de uma string aparece como \", \\ ou \n no resultado. A ferramenta não coloca o JSON inteiro dentro de uma única string com escape para embutir em outra string; ela entrega o próprio JSON.
É a mesma coisa que JSON.stringify? Por que meu número grande mudou?
O resultado é feito com JSON.stringify, então as regras de saída são as mesmas. A diferença está na entrada: JSON.stringify precisa de um objeto real no seu código, enquanto aqui você cola o texto do objeto, inclusive com sintaxe solta. Os números viram números do JavaScript, exatos só até 9007199254740991, por isso 12345678901234567890 sai como 12345678901234567000 e 1.0 como 1. NaN, Infinity e -Infinity viram null, e, se uma chave aparece duas vezes, vale o último valor. O limite é de 5.000.000 de caracteres, e a conversão acontece no seu dispositivo, sem enviar nem salvar nada.