TOML para JSON
O Cargo.toml do Rust, o pyproject.toml do Python, o config.toml do Hugo: TOML está por toda parte na configuração moderna, mas muitas ferramentas ainda falam apenas JSON. Cole seu TOML aqui e receba JSON formatado de volta: as seções [tabela] viram objetos aninhados, os blocos [[array de tabelas]] viram arrays de objetos, e as datas passam intactas como strings. O parser cobre o núcleo cotidiano do TOML; seus limites reais (valores de várias linhas, tabelas inline, chaves com ponto) estão listados abertamente logo abaixo.
Como a conversão funciona
-
1
Cole seu TOML
Coloque o texto na caixa de entrada e clique em Converter para JSON. Comentários # de linha inteira são ignorados automaticamente.
-
2
Tabelas viram objetos
Um cabeçalho `[server.database]` vira objetos JSON aninhados, um nível para cada nome separado por ponto.
-
3
Arrays de tabelas viram arrays
Blocos `[[users]]` montam um array JSON com um objeto por bloco.
-
4
Valores escalares mantêm o tipo
Strings entre aspas, inteiros e decimais em notação simples e true/false viram tipos JSON nativos; datas continuam strings, exatamente como foram escritas.
-
5
Copie o JSON
O resultado sai formatado com indentação de 4 espaços, com as chaves na ordem original, pronto para copiar.
Como os tipos são mapeados
| Valor TOML | Valor JSON | Exemplo |
|---|---|---|
| String (básica ou literal) | String | "hello" → "hello" |
| Inteiro (decimal simples) | Número | 42 → 42 |
| Float (decimal simples) | Número | 3.14 → 3.14 |
| Booleano | Booleano | true → true |
| Array (uma linha) | Array | [1, 2, 3] → [1, 2, 3] |
| Tabela com chaves | Objeto | [server] + port = 8080 → "server": {"port": 8080} |
| Array de tabelas | Array de objetos | [[users]] + name = "alice" → "users": [{"name": "alice"}] |
| Data e hora | String, como escrita | 2026-04-18T10:00:00Z → "2026-04-18T10:00:00Z" |
A saída é sempre formatada com indentação de 4 espaços, então arrays e objetos ocupam várias linhas; a tabela acima mostra os valores em linha para facilitar a leitura. A ordem das chaves é preservada exatamente como aparece no seu TOML.
Exemplo completo
title = "My App"
[server]
host = "localhost"
port = 8080
[[users]]
name = "alice"
admin = true
converte para:
{
"title": "My App",
"server": {
"host": "localhost",
"port": 8080
},
"users": [
{
"name": "alice",
"admin": true
}
]
}
TOML aceito e os limites reais
Aceito: cabeçalhos [tabela] incluindo nomes de seção com ponto, [[arrays de tabelas]], pares chave = valor em uma linha, strings básicas "..." com os escapes \n, \t e \", strings literais '...', inteiros e decimais em notação simples, true/false, arrays de uma linha (aninhamento permitido), comentários # de linha inteira e datas repassadas como strings.
Não aceito, e o que fazer no lugar:
- Strings de várias linhas (
"""ou''') e arrays de várias linhas param o parser com um erro. Antes, coloque o valor em uma única linha. - Tabelas inline não são expandidas:
point = { x = 1, y = 2 }sai como a string"{ x = 1, y = 2 }", não como objeto. Reescreva como uma seção[point]própria. As linhas de dependências do Cargo.toml, comoserde = { version = "1.0" }, são o caso clássico. - Chaves com ponto à esquerda do sinal de igual ficam como uma chave plana:
server.host = "a"produz a chave"server.host", sem aninhar. Use um cabeçalho[server]no lugar. Já os[nomes.de.secao]com ponto nos cabeçalhos aninham corretamente. - Comentários na mesma linha não são removidos:
port = 8080 # mainvira a string"8080 # main". Mantenha comentários em linhas próprias. - Formatos numéricos além do decimal simples não são reconhecidos:
1_000,0xFF,5e2,+99,infenansaem como strings entre aspas. Escreva1000,255,500,99. - Escapes
\uXXXXem strings básicas não são decodificados. Cole o caractere real no lugar.
Para um documento TOML 1.0 completo, use um conversor de linha de comando como o toml2json, ou carregue o arquivo com o tomllib do Python e gere o JSON de lá.
Onde isso é útil
- Inspeção rápida de um trecho TOML como JSON durante a depuração.
- Passar valores de configuração simples para linters, scripts ou ferramentas de inventário que só aceitam JSON.
- Gerar fixtures JSON de teste a partir de anotações TOML mais fáceis de escrever à mão.
- Migrar arquivos de configuração pequenos e planos, como são muitos
config.tomldo Hugo.
Notas sobre ida e volta
- Comentários nunca sobrevivem: JSON não tem sintaxe de comentário.
- Datas continuam strings; o código seguinte precisa convertê-las de volta em objetos de data.
- Números grandes: os inteiros ficam como valores de 64 bits no texto JSON, mas consumidores JavaScript perdem precisão acima de 2^53. Atenção com timestamps em nanossegundos e IDs numéricos.
- A ordem das chaves é mantida como escrita por este conversor; outras ferramentas JSON podem reordenar as chaves ao reemitir o documento.
Direção inversa
JSON → TOML é a viagem difícil, porque JSON tem estruturas (aninhamento anônimo profundo, null) que o TOML não tem ou trata de outro jeito. A maioria dos cenários de ida e volta exige ajustes manuais do lado TOML.
Perguntas frequentes
Não. JSON não tem sintaxe de comentário, então comentários # de linha inteira são simplesmente ignorados. Um alerta: um comentário depois de um valor não é removido, então port = 8080 # main vira a string “8080 # main”. Deixe os comentários em linhas próprias antes de converter.
Não. Ele cobre o núcleo do dia a dia: tabelas com nomes de seção com ponto, arrays de tabelas, pares chave = valor em uma linha, strings entre aspas, números decimais simples, booleanos, arrays de uma linha e comentários de linha inteira. Strings e arrays de várias linhas, tabelas inline, chaves com ponto e formatos numéricos como 1_000 ou 0xFF não são aceitos. Para documentos com a especificação completa, use uma ferramenta de linha de comando como o toml2json ou o tomllib do Python.
Arquivos de configuração típicos convertem na hora. A conversão roda no nosso servidor, então documentos enormes ficam limitados pelo tamanho da requisição; para TOML de vários megabytes, um conversor de linha de comando é a melhor opção.
Sim, este conversor roda no servidor: o TOML viaja até o nosso servidor por HTTPS, é convertido lá e volta na mesma resposta. O conteúdo não fica armazenado depois; só é registrado um contador de uso anônimo. Evite colar segredos como senhas ou chaves de API.
Ferramentas relacionadas
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Referência de Caracteres HTML
Lista pesquisável de entidades HTML, seus códigos nomeados e numéricos, e uma cópia com um clique para caracteres e símbolos especiais.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Visualizador de Markdown
Escreva Markdown e veja a renderização HTML atualizar ao vivo. Sintaxe com estilo GitHub, incluindo tabelas, listas de tarefas, blocos de código cercados e autolinks.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Ferramenta disponível em outros idiomas
- TOML เป็น JSON [TH]
- TOML a JSON [ES]
- TOML na JSON [PL]
- TOMLからJSONへ [JA]
- TOML till JSON [SV]
- TOML sang JSON [VI]
- من TOML إلى JSON [AR]
- TOML en JSON [FR]
- TOML zu JSON [DE]
- TOML ke JSON [ID]
- TOML to JSON [KO]
- TOML naar JSON [NL]
- TOML'dan JSON'a [TR]
- TOML 至 JSON [ZH]
- TOML to JSON [EN]
- TOML in JSON [IT]
- TOML в JSON [RU]