Conversor de JSON para TOML
TOML é o formato de configuração que você encontra no Cargo, pyproject, uv, poetry e uma crescente pilha de ferramentas de CLI. Este conversor pega um documento JSON e emite TOML válido: tabelas com cabeçalhos [section], tabelas aninhadas com chaves pontuadas, arrays de tabelas para arrays JSON de objetos e citação adequada para strings que contêm caracteres especiais.
Como converter JSON para TOML
-
1
Cole o JSON
Objeto no nível superior (TOML não pode representar um array no nível superior).
-
2
Escolha o estilo da tabela
Tabelas inline para objetos pequenos, cabeçalhos padrão `[section]` para os maiores.
-
3
Escolha a versão do TOML
TOML 1.0 é a especificação amplamente suportada; 1.1 ainda é um rascunho, mas adiciona alguns recursos.
-
4
Copie o TOML
Cole no seu arquivo `.toml`, Cargo, pyproject, uv, poetry ou qualquer configuração que aceite TOML.
Exemplo
Entrada:
{
"project": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "django": "4.2", "redis": "^5.0" },
"servers": [
{ "host": "h1.example.com", "port": 443 },
{ "host": "h2.example.com", "port": 443 }
]
}
Saída:
[project]
name = "my-app"
version = "1.0.0"
[dependencies]
django = "4.2"
redis = "^5.0"
[[servers]]
host = "h1.example.com"
port = 443
[[servers]]
host = "h2.example.com"
port = 443
Mapeamento de tipos
| JSON | TOML |
|---|---|
| cadeia | "quoted" (ou 'literal' para strings sem caracteres especiais) |
| inteiro | 42 |
| número | 3.14 |
| booleano | true / false |
| null | Não representável, TOML não tem null (omita a chave) |
| data ISO | 1979-05-27 (data local TOML) |
| data/hora ISO | 1979-05-27T07:32:00Z |
| array do mesmo tipo | [1, 2, 3] |
| array misto | Ainda permitido, menos convencional |
| array de objetos | [[name]] ... array de tabelas |
| objeto | cabeçalho [section] ou inline |
Convenções específicas do TOML
- As tabelas não devem conflitar: uma chave não pode ser tanto um valor quanto um cabeçalho de tabela no mesmo documento.
- Array de tabelas usa colchetes duplos:
[[servers]]significa “iniciar um novo elemento do arrayservers”. - Chaves pontuadas permitem que você escreva
project.author.name = "..."sem criar um cabeçalho de tabela. - Comentários começam com
#e são apenas de linha.
Tratamento de null
TOML não tem null. Opções:
- Omitir a chave, mais semântico, se “ausente” for equivalente a “null”.
- Substituir por uma string vazia, bom se a string vazia nunca for um valor válido.
- Usar um valor sentinela,
"__null__"ou similar, interpretado pelo seu código.
O conversor omite chaves nulas por padrão e avisa ao fazê-lo.
Erros comuns
- Array JSON no nível superior.
[1, 2, 3]na raiz do JSON não pode se tornar um documento TOML válido, envolva-o em um objeto como{ "items": [1, 2, 3] }. - Misturando cabeçalhos de tabela com atribuições inline. Uma vez que você escreve
[project], cada chave subsequente nessa seção pertence aprojectaté o próximo cabeçalho. - Chaves com caracteres especiais.
"api-key"está bom (entre aspas), masapi-keysem aspas é um erro de análise TOML. - Assumindo que a ordem é preservada. Os analisadores TOML geralmente preservam a ordem dos cabeçalhos dentro das tabelas, mas a ordem das chaves dentro de uma tabela não é garantida em todas as implementações.
Perguntas frequentes
TOML é projetado para ser editado por humanos, comentários, sem regras de vírgula pedantes, seções. JSON é projetado para troca entre máquinas. Ecossistemas de ferramentas (Cargo, pyproject) escolheram TOML por um motivo.
TOML não tem null. O conversor omite chaves com valores nulos por padrão (e registra quais). Se você precisar de um sentinela, substitua os nulos no seu JSON primeiro.
Não diretamente, documentos TOML devem ser uma tabela (objeto) na raiz. Envolva seu array em um objeto ({ "items": [...] }) e o conversor produzirá um array de tabelas [[items]].
Sim. A saída segue TOML 1.0, que é o que ambas as ferramentas usam. Para quaisquer extensões específicas de ferramentas (por exemplo, subseções tool.poetry), organize o JSON de acordo e o conversor preservará a aninhamento.
Ferramentas relacionadas
Gerador de cards CSS
Crie um card com seu título, texto e link opcional. Ajuste cores, borda, espaçamento, sombra e efeito ao passar o mouse. Depois copie ou baixe o HTML e o CSS.
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.
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.
Gerador de README
Gere um README.md estruturado a partir de alguns campos: nome do projeto, tagline, recursos, comando de instalação, trecho de início rápido, autor e licença. Cole direto no seu repositório.
Ofuscador de JavaScript
Ofusque JavaScript com codificação de array de strings, renomeação de variáveis, achatamento de fluxo de controle e injeção de código morto para proteção do front-end.
Ferramenta disponível em outros idiomas
- JSON till TOML-konverterare [SV]
- JSON naar TOML-converter [NL]
- ตัวแปลง JSON เป็น TOML [TH]
- JSON에서 TOML로의 변환기 [KO]
- محوّل JSON إلى TOML [AR]
- Konverter JSON ke TOML [ID]
- Chuyển đổi từ JSON sang TOML [VI]
- Konwerter JSON do TOML [PL]
- JSON zu TOML Konverter [DE]
- JSONからTOMLへの変換ツール [JA]
- Convertidor de JSON a TOML [ES]
- Convertisseur JSON en TOML [FR]
- JSON to TOML Converter [EN]
- Convertitore da JSON a TOML [IT]
- Конвертер JSON в TOML [RU]
- JSON'tan TOML'e Çevirici [TR]
- JSON 至 TOML 转换器 [ZH]