Como usar
- Cole um objeto JSON em Objeto JSON. O texto inteiro deve ser um objeto, com chaves no início.
- Leia Verificação. Verde significa que o objeto foi convertido; vermelho indica o nome onde está o problema e o motivo.
- Copie a saída TOML para um arquivo, ou baixe-a como config.toml.
Como o TOML é organizado
Os valores de cada tabela são escritos primeiro, e as suas subtabelas vêm depois. O TOML exige essa ordem, porque os valores de uma tabela devem vir antes dos cabeçalhos que abrem as suas subtabelas. Os nomes mantêm a ordem do JSON.
- Um objeto dentro de um objeto vira uma tabela com cabeçalho próprio, como [owner], e os seus valores vêm depois do cabeçalho.
- Uma lista de objetos vira um array de tabelas: uma seção para cada objeto, com o cabeçalho entre colchetes duplos.
- Uma lista de números ou de textos fica em uma linha só, entre colchetes, o que o TOML permite.
- Um número com ponto ou expoente é escrito como float, então 1.0 continua 1.0. Um número sem eles é escrito como inteiro.
O que o TOML não comporta
- Um null. O TOML não tem null, então um nome com null interrompe a conversão e é citado na mensagem. Remova o nome ou dê a ele um valor.
- Um inteiro fora do intervalo de 64 bits com sinal. O JSON aceita qualquer tamanho, mas o TOML para em 9.223.372.036.854.775.807.
- Um nível superior que é uma lista ou um valor único. Um documento TOML é sempre uma tabela, então o JSON deve ser um objeto.
Nomes que precisam de aspas
Um nome formado só por letras, dígitos, sublinhados e traços é escrito como está. Qualquer outro nome, como um com espaço ou ponto, é escrito entre aspas duplas, e o mesmo vale para um nome vazio. Aspas, barras invertidas e caracteres de controle no texto recebem escape do modo que o TOML exige.
Exemplo resolvido: uma lista, um float e um objeto
O JSON abaixo dá um valor de cada tipo que a ferramenta escreve. Cada linha da tabela dá o valor JSON e a linha TOML em que ele se torna.
| Valor JSON | Linha TOML |
|---|---|
| "ports": [8000, 8001] | ports = [8000, 8001] |
| "ratio": 1.0 | ratio = 1.0 |
| "owner": {"name": "Ada"} | [owner], e depois name = "Ada" |
Perguntas frequentes
Por que os valores de uma tabela vêm antes das suas subtabelas?
O TOML exige que os valores próprios de cada tabela venham antes dos cabeçalhos das suas subtabelas. A ferramenta escreve os valores primeiro, então o arquivo é lido corretamente e parece um que uma pessoa escreveria à mão.
Por que um número é escrito como 1.0 e outro como 1?
Um número JSON com ponto ou expoente, como 1.0 ou 2e3, é um float em TOML, e um número sem eles é um inteiro. A ferramenta mantém essa diferença, então um float nunca é escrito como inteiro.
Por que um null interrompe a conversão?
O TOML não tem valor null, então a ferramenta não consegue escrever um sem alterar os dados. Remova o nome que guarda o null, ou dê a ele um valor, como um texto vazio, e converta de novo.
Uma data no JSON vira uma data no TOML?
Não. Uma data em JSON é um texto, e um texto continua texto, então o TOML mantém a data entre aspas. Mude as aspas para uma data à mão se o arquivo TOML precisar de um valor de data de verdade.
O JSON que eu colo é enviado para algum lugar?
Não. A conversão roda no seu navegador, e nada do que você cola é guardado ou enviado para nós. Mesmo assim, não cole uma senha ou um token em uma página em que você não confia.
Fontes
- TOML v1.0.0 (em inglês): specification
- RFC 8259 (em inglês): The JavaScript Object Notation (JSON) Data Interchange Format
Números e texto verificados pela última vez em quarta-feira, 11 de novembro de 2026.