Conversor de TOML para JSON
Cole TOML à esquerda, obtenha JSON à direita. Tabelas viram objetos, arrays de tabelas viram arrays. Sem upload.
- Cole seu TOML na área de texto à esquerda.
- Clique em "Converter para JSON". A saída é um objeto JSON preservando o aninhamento de tabelas.
- Copie o resultado ou baixe como data.json.
- Valores de data-hora são convertidos para strings ISO 8601; underscores em números são removidos.
O que ele faz?
Parseia um documento TOML 1.0 em um objeto JSON. Tabelas `[section]` viram objetos aninhados; arrays de tabelas `[[items]]` viram arrays JSON. Strings, inteiros (incluindo literais hex/octal/binário e underscores de agrupamento), floats, booleanos, datas, datas-hora e horas mapeiam para representações equivalentes em JSON. Tabelas e arrays inline são achatados da mesma forma.
Exemplo
Entrada TOML:
name = "Ada"
active = true
[address]
city = "London" Saída JSON:
{
"name": "Ada",
"active": true,
"address": {
"city": "London"
}
} Erros comuns de TOML e como corrigi-los
TOML tem regras mais estritas que YAML ou JSON em alguns lugares. Os padrões abaixo cobrem a maioria das falhas do parser.
- Strings sem aspas. `name = Ada` é inválido — valores nus são interpretados como chaves/booleanos/números, não strings. Use aspas duplas: `name = "Ada"`.
- Arrays de tipos mistos (TOML 0.x). TOML 0.5 proibia tipos mistos em arrays; TOML 1.0 permite. @iarna/toml segue 1.0, então `[1, "two"]` é válido aqui. Se seu TOML precisa round-trip por ferramentas 0.5, mantenha arrays homogêneos.
- Redefinir uma tabela. Definir `[a]` duas vezes é erro. Cada cabeçalho de tabela deve aparecer no máximo uma vez. Mescle as chaves em um único bloco `[a]`.
- Data-hora sem fuso horário. `d = 2026-04-26T12:00:00` (sem Z nem offset) é uma "data-hora local" — parseia, mas JSON não tem conceito de localidade. A saída é a mesma string com o horário do relógio de parede, não um instante UTC. Adicione `Z` para UTC: `d = 2026-04-26T12:00:00Z`.
- Confusão de escape com aspas triplas. Strings multilinha básicas TOML usam `"""..."""` e processam escapes; strings multilinha literais usam `\'\'\'...\'\'\'` e não. Misturar regras de escape é o erro mais comum em strings multilinha.
- Extensão de tabela inline. Uma tabela inline `point = {x=1, y=2}` está fechada e auto-contida — você não pode depois escrever `[point.z]` nem `point.z = 3`. Para estender, use a sintaxe de bloco padrão `[point]`.
Perguntas frequentes
Como datas-hora são representadas em JSON?
JSON não tem tipo nativo de data-hora, então valores viram strings ISO 8601. Datas-hora com offset (`2026-04-26T12:00:00Z`) e locais (`2026-04-26T12:00:00`) ambas viram string literalmente — mas só a forma com offset é inequívoca em JSON.
Os underscores de inteiros são preservados?
Não — TOML permite `1_000_000` como ajuda de legibilidade; o parser remove os underscores e o valor JSON é `1000000`. O agrupamento é puramente uma característica de texto-fonte do TOML.
O que acontece com comentários TOML?
São descartados. Comentários TOML começam com `#`; JSON não tem sintaxe de comentários, então o parser os descarta. Para preservá-los, você precisaria de um formato intermediário diferente.
Arrays de tabelas são suportados?
Sim. Blocos `[[products]]` repetidos várias vezes viram um array JSON sob a chave `products`. Cada cabeçalho `[[products]]` introduz uma nova entrada de array; linhas chave-valor subsequentes preenchem essa entrada.
Posso converter arquivos TOML realmente grandes?
Até cerca de 30 MB antes do textarea ficar lento. Arquivos TOML muito grandes são raros — a maioria dos arquivos de config está bem abaixo de 1 MB.
Meu TOML é enviado para algum lugar?
Não. Tudo roda no seu navegador — seus dados são parseados por JavaScript nesta página e nunca enviados a servidor.