Ir para o conteúdo

Objeto JS para JSON

Converta um literal de objeto JavaScript em JSON válido e rigoroso.

Entrada

Objeto JS para JSON

Cole um literal de objeto JavaScript e esta ferramenta converte-o em JSON rigoroso que pode usar numa resposta API, num ficheiro de configuração ou numa fixture de teste. Aceita a sintaxe que o código JavaScript real utiliza: chaves sem aspas, strings entre aspas simples, vírgulas à direita, comentários de linha e de bloco, e strings template simples sem expressões ${…} — nenhuma das quais é válida em JSON por si.

A opção de indentação formata o resultado com 2 espaços, 4 espaços, uma tabulação, ou uma única linha minificada. Valores indefinidos não têm equivalente em JSON, portanto a opção de valores indefinidos permite-lhe omitir essas chaves por completo ou convertê-las para null, conforme o seu consumidor espera. Desativar "Remover comentários" faz com que comentários isolados sejam relatados como erro em vez de serem silenciosamente descartados, útil quando deseja confirmar que o input é caso contrário limpo. Ordenar chaves organiza as propriedades de cada objeto alfabeticamente em todos os níveis de aninhamento, o que facilita a comparação entre dois payloads JSON. Mudar a direção para JSON → Objeto JS inverte a conversão, produzindo um literal JS com aspas removidas de qualquer chave que seja um identificador válido — prático para colar configuração diretamente no código-fonte.

Input malformado — dois-pontos em falta, string não terminada, expressão template — é reportado com a linha e coluna onde a análise parou, para encontrar o problema em vez de adivinhar. O output está limitado a 10 MB para manter o separador responsivo; objetos extremamente grandes devem ser divididos em peças mais pequenas primeiro.

Tudo funciona localmente no seu navegador — nada do que cola é enviado para qualquer lugar. Quando acabar, copie o resultado, descarregue-o como ficheiro .txt, ou envie-o diretamente para o input de outra ferramenta para continuar a trabalhar nele.

FAQ

Que sintaxe JavaScript é que entende?
Objetos e arrays com chaves entre aspas ou sem aspas, strings entre aspas simples e duplas, strings template simples, números (incluindo negativos, decimais e sublinhados), true/false/null/undefined, vírgulas à direita, e comentários // e /* */.
O que acontece aos valores indefinidos?
Por defeito uma chave cujo valor é indefinido é omitida do JSON por completo, uma vez que JSON não tem indefinido. Mude "Valores indefinidos" para "Converter para null" se precisar que a chave fique presente.
Consegue converter JSON novamente para um literal de objeto JS?
Sim — mude Direção para "JSON → Objeto JS". Chaves que são identificadores JavaScript válidos são impressas sem aspas; o resto mantém aspas simples.
É que avalia o objeto como código?
Não. O seu input é analisado como texto por um parser dedicado — nunca é executado, portanto funções, variáveis e expressões template como ${…} não são suportadas e são reportadas como erros em vez de serem executadas.
Os meus dados são enviados para qualquer lugar?
Não. A conversão funciona inteiramente no seu navegador — o seu objeto nunca deixa o seu dispositivo.