Skip to main content
CheckTown
Conversores

TOML to JSON Converter: Bidirectional Format Conversion

Publicado 4 min de leitura
Neste artigo

O que e TOML?

TOML (Tom's Obvious Minimal Language) e um formato de ficheiro de configuracao desenhado para ser facil de ler e escrever. Criado por Tom Preston-Werner (co-fundador do GitHub) em 2013, o TOML mapeia-se de forma inequivoca para uma tabela hash, tornando-o simples de analisar em estruturas de dados em qualquer linguagem de programacao.

Ao contrario do YAML que depende de indentacao e tem inumeras armadilhas, ou do JSON que nao suporta comentarios e virgulas finais, o TOML oferece um meio-termo: tipagem explicita (strings, inteiros, floats, booleanos, datas), sintaxe de tabela clara com [parenteses retos] e suporte para tabelas inline e arrays — tudo sem a ambiguidade que afeta outros formatos de configuracao.

Como funciona a conversao TOML para JSON

A conversao entre TOML e JSON envolve analisar o formato fonte numa estrutura de dados intermedia e serializa-la no formato alvo. Cada tipo TOML mapeia diretamente para um equivalente JSON.

  • Pares chave-valor — a sintaxe chave = valor do TOML mapeia para propriedades de objetos JSON; chaves pontilhadas como server.port tornam-se objetos aninhados
  • Tabelas e arrays — os cabecalhos [tabela] TOML tornam-se objetos JSON, e os [[array-de-tabelas]] tornam-se arrays de objetos JSON, preservando a estrutura hierarquica
  • Sistema de tipos — os tipos nativos TOML (string, inteiro, float, booleano, datetime) mapeiam para primitivos JSON; os valores datetime sao serializados como strings ISO 8601 ja que JSON nao tem tipo de data

Experimente gratuitamente — sem cadastro

Converter TOML para JSON →

Onde o TOML e usado

O TOML foi adotado por varios ecossistemas importantes como formato de configuracao preferido devido a sua clareza e rigor.

  • Ecossistema Rust — Cargo.toml e o manifesto do pacote para cada projeto Rust, definindo dependencias, configuracoes de build e metadados num formato editavel por humanos e analisavel por maquinas
  • Empacotamento Python — pyproject.toml (PEP 518/621) tornou-se o padrao para configuracao de projetos Python, substituindo setup.py e setup.cfg por um formato declarativo mais limpo
  • Geradores de sites estaticos — Hugo usa config.toml para configuracao do site, e muitas outras ferramentas (Deno, InfluxDB, Netlify) usam TOML para os seus ficheiros de configuracao

Perguntas frequentes

Quais sao as diferencas entre TOML, YAML e JSON para configuracao?

JSON e o mais simples mas nao suporta comentarios e virgulas finais, tornando-o incomodo para ficheiros de configuracao editados por humanos. YAML suporta comentarios e e visualmente limpo mas a sua sintaxe baseada em indentacao leva a bugs subtis. TOML suporta comentarios, tem tipagem explicita e evita analise baseada em indentacao.

Quais sao as limitacoes do TOML?

O TOML pode tornar-se verboso para estruturas profundamente aninhadas ja que cada nivel de aninhamento requer o seu proprio cabecalho [tabela.subtabela]. Tambem nao tem tipo null (ao contrario de JSON e YAML), o que significa que valores ausentes devem ser tratados omitindo completamente a chave.

Como o TOML lida com datas e horas?

O TOML tem suporte nativo para tipos de data e hora segundo RFC 3339: datetime com offset (2024-01-15T10:30:00Z), datetime local (2024-01-15T10:30:00), data local (2024-01-15) e hora local (10:30:00). Na conversao para JSON, sao serializados como strings ISO 8601 ja que JSON nao tem tipo de data nativo.

Ferramentas relacionadas