Conversor de TOML para JSON

Cole TOML à esquerda, obtenha JSON à direita. Tabelas viram objetos, arrays de tabelas viram arrays. Sem upload.

  1. Cole seu TOML na área de texto à esquerda.
  2. Clique em "Converter para JSON". A saída é um objeto JSON preservando o aninhamento de tabelas.
  3. Copie o resultado ou baixe como data.json.
  4. 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.