ToolDeck

Conversor JSON para TOML

Converta JSON para o formato TOML

Experimente um exemplo

Entrada JSON

Saída TOML

Roda localmente · Seguro para colar segredos
A saída TOML aparecerá aqui…

O Que É a Conversão de JSON para TOML?

A conversão de JSON para TOML transforma dados do formato JavaScript Object Notation para o Tom's Obvious Minimal Language. JSON utiliza chaves, colchetes e chaves entre aspas para representar dados estruturados. TOML usa uma sintaxe simples de chave-valor com cabeçalhos de seção (chamados tabelas) que lembra um arquivo INI, mas com tipagem estrita. O TOML foi desenvolvido especificamente para arquivos de configuração onde a legibilidade humana é mais importante do que a troca entre sistemas.

O TOML tornou-se o formato de configuração padrão para Rust (Cargo.toml), empacotamento Python (pyproject.toml), sites estáticos Hugo, configurações de implantação Netlify e diversas ferramentas de linha de comando. Quando seus dados existem em JSON — de uma resposta de API, uma configuração exportada ou um arquivo gerado — e seu sistema de destino espera TOML, você precisa de um conversor que mapeie objetos JSON para tabelas TOML, arrays JSON para arrays TOML e preserve cada tipo de dado com precisão.

Converter JSON para TOML online é a forma mais rápida de gerar TOML válido a partir de dados JSON existentes. A conversão trata o mapeamento de tipos automaticamente: strings JSON tornam-se strings TOML, números JSON tornam-se inteiros ou floats TOML, booleanos JSON mapeiam diretamente, e objetos JSON tornam-se tabelas TOML. A única exceção é null — TOML não possui tipo null, portanto valores nulos são omitidos ou convertidos para strings vazias dependendo do conversor.

Por Que Usar Este Conversor JSON para TOML?

TOML é o que os arquivos de configuração esperam; JSON é o que APIs e ferramentas produzem. Este conversor preenche essa lacuna para que você possa mover dados entre os dois formatos sem reescrita manual.

Conversão Instantânea
Cole o JSON e obtenha a saída TOML imediatamente. A conversão ocorre enquanto você digita, sem chamadas ao servidor nem upload de arquivos.
🔒
Processamento com Privacidade
Toda a conversão ocorre localmente no seu navegador. Segredos de configuração, chaves de API e credenciais de banco de dados presentes no seu JSON nunca saem do seu dispositivo.
🔀
Suporte Completo a Estruturas
Objetos aninhados tornam-se tabelas TOML, arrays de objetos tornam-se arrays de tabelas ([[table]]), e arrays com tipos mistos são tratados corretamente.
📋
Sem Cadastro Necessário
Abra a página e converta. Sem cadastro, sem extensão para instalar, sem dependência de linha de comando. Funciona em qualquer dispositivo com um navegador moderno.

Casos de Uso de JSON para TOML

Configuração de Projetos Rust
O Cargo.toml define dependências, recursos e configurações de compilação para projetos Rust. Converta listas de dependências JSON ou configurações geradas diretamente para o formato Cargo.toml.
Empacotamento Python (pyproject.toml)
A PEP 518 e a PEP 621 padronizaram o pyproject.toml como arquivo de metadados de projetos Python. Converta metadados de pacotes JSON existentes para a estrutura TOML exigida.
Configuração de Sites Estáticos
Hugo, Netlify e outros geradores de sites estáticos utilizam arquivos de configuração TOML. Ao migrar de uma configuração baseada em JSON ou gerar configurações programaticamente, converta a saída para TOML.
DevOps e Infraestrutura
Ferramentas como Terraform (para determinados provedores), Consul e vários runtimes de contêineres aceitam configuração TOML. Converta configurações exportadas em JSON para TOML sem redigitar os valores.
Resposta de API para Arquivo de Configuração
APIs REST retornam JSON. Quando você precisa usar esses dados como uma configuração TOML — por exemplo, flags de funcionalidade ou variáveis de ambiente — cole a resposta e obtenha TOML válido.
Aprendendo a Sintaxe TOML
Estudantes e desenvolvedores iniciantes em TOML podem colar estruturas JSON conhecidas e visualizar a saída TOML equivalente.

Comparação JSON vs TOML

JSON e TOML se sobrepõem em capacidade, mas diferem em sintaxe, suporte a tipos e uso pretendido. Esta tabela mostra as diferenças que afetam a conversão.

RecursoJSONTOML
SyntaxBraces, brackets, colons, commasKey = value, [table], [[array]]
CommentsNot allowed (RFC 8259)Supported with #
Data typesstring, number, boolean, null, object, arraystring, integer, float, boolean, datetime, array, table
null supportNative (null)No null type — omit the key or use empty string
Nested objectsUnlimited nesting depthDotted keys or [table.subtable] headers
Arrays of objectsArray of objects with [][[array-of-tables]] syntax
ReadabilityModerate — bracket-heavy at depthHigh — flat key-value pairs
SpecRFC 8259 / ECMA-404TOML v1.0.0 (toml.io)

Armadilhas na Conversão para TOML

TOML possui regras que diferem do JSON de maneiras que afetam a saída da conversão. Esses quatro problemas causam a maior confusão.

Sem Tipo null no TOML
JSON suporta null como valor de primeira classe. TOML não possui tipo null. Na conversão, valores nulos precisam ser tratados — seja omitindo a chave completamente, usando uma string vazia ou escolhendo um valor sentinela. Isso significa que uma conversão de ida e volta de JSON para TOML e de volta pode não reproduzir os valores null originais.
Arrays Heterogêneos São Restritos
Arrays JSON podem misturar tipos livremente: [1, "dois", true]. O TOML v1.0.0 exige que todos os elementos de um array sejam do mesmo tipo. Se seu JSON contiver arrays de tipos mistos, o conversor precisará transformar todos os elementos em strings ou gerar um erro. Verifique sua saída quando os arrays de origem contiverem tipos mistos.
Objetos Profundamente Aninhados Tornam-se Verbosos
JSON lida naturalmente com aninhamento profundo usando chaves aninhadas. TOML usa chaves pontilhadas ou cabeçalhos encadeados [tabela.subtabela.chave], que podem se tornar longos para estruturas muito aninhadas. A saída é válida, mas menos compacta do que o JSON original.
Restrições na Nomenclatura de Chaves
Chaves simples em TOML só podem conter letras ASCII, dígitos, hífens e underscores. Chaves JSON podem ser qualquer string. Se seu JSON tiver chaves com espaços, pontos ou caracteres especiais, essas chaves precisarão de aspas na saída TOML. A maioria dos conversores trata isso automaticamente, mas verifique a saída se suas chaves contiverem caracteres incomuns.

Exemplos de Código

Converter JSON para TOML programaticamente requer uma biblioteca de serialização TOML na maioria das linguagens. Bibliotecas padrão fazem o parsing de JSON; a saída TOML precisa de um pacote dedicado.

JavaScript (Node.js)
import { stringify } from '@iarna/toml'

const json = '{"title":"My App","database":{"host":"localhost","port":5432}}'
const obj = JSON.parse(json)
const toml = stringify(obj)
console.log(toml)
// → title = "My App"
// →
// → [database]
// → host = "localhost"
// → port = 5432
Python
import json
import tomli_w  # pip install tomli_w

json_str = '{"title": "My App", "database": {"host": "localhost", "port": 5432}}'
data = json.loads(json_str)
toml_str = tomli_w.dumps(data)
print(toml_str)
# → title = "My App"
# →
# → [database]
# → host = "localhost"
# → port = 5432
Go
package main

import (
    "encoding/json"
    "fmt"
    "github.com/pelletier/go-toml/v2"
)

func main() {
    jsonStr := `{"title":"My App","database":{"host":"localhost","port":5432}}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    tomlBytes, _ := toml.Marshal(data)
    fmt.Println(string(tomlBytes))
    // → title = 'My App'
    // →
    // → [database]
    // → host = 'localhost'
    // → port = 5432
}
CLI (yj / remarshal)
# Using yj (https://github.com/sclevine/yj)
echo '{"title":"My App","port":3000}' | yj -jt
# → title = "My App"
# → port = 3000

# Using remarshal (pip install remarshal)
echo '{"title":"My App","port":3000}' | remarshal -if json -of toml
# → title = "My App"
# → port = 3000

Perguntas Frequentes

A conversão de JSON para TOML é sem perda de dados?
Para a maioria dos dados, sim. Strings, inteiros, floats, booleanos, objetos e arrays têm equivalentes diretos em TOML. As duas exceções são null (TOML não possui tipo null, portanto valores nulos são omitidos ou substituídos) e arrays de tipos mistos (TOML exige tipos uniformes nos elementos). Se seu JSON evitar esses dois padrões, a conversão será totalmente sem perda.
O que acontece com valores null do JSON no TOML?
TOML não possui tipo null. Os conversores normalmente omitem chaves com valores null da saída, pois não há como representar "a chave existe mas não tem valor" em TOML. Alguns conversores permitem usar uma string vazia no lugar. Verifique sua saída se valores null tiverem significado nos seus dados.
O TOML consegue representar objetos JSON aninhados?
Sim. Objetos JSON tornam-se tabelas TOML. Um objeto aninhado como {"database": {"host": "localhost"}} converte-se para um cabeçalho de tabela [database] com host = "localhost" abaixo dele. Aninhamento de profundidade arbitrária é suportado por meio de chaves pontilhadas ou cabeçalhos de tabelas aninhadas.
Por que Rust e Python usam TOML em vez de JSON?
TOML suporta comentários, essenciais para documentar escolhas de configuração. Também produz uma saída mais limpa para configurações simples de chave-valor, que constituem a maior parte dos metadados de pacotes. JSON proíbe comentários (RFC 8259), tornando sua manutenção mais difícil como formato de configuração editado por humanos.
Como o TOML lida com datas e horários?
TOML possui tipos datetime nativos: datetime com fuso horário (2024-01-15T10:30:00Z), datetime local, data local e hora local. JSON não possui tipo de data — datas são armazenadas como strings. Ao converter JSON para TOML, strings semelhantes a datas permanecem como strings, a menos que o conversor detecte e converta explicitamente padrões ISO 8601.
É seguro colar segredos e credenciais nesta ferramenta?
Sim. A conversão ocorre inteiramente no seu navegador usando JavaScript. Nenhum dado é enviado a qualquer servidor. Você pode verificar isso abrindo as ferramentas de desenvolvedor do seu navegador, indo à aba Rede e confirmando que nenhuma requisição é feita durante a conversão.
Qual versão do TOML a saída segue?
A saída segue o TOML v1.0.0, lançado em janeiro de 2021 e atual especificação estável. Esta versão exige tipos uniformes em arrays, suporta chaves pontilhadas e define o formato de datetime. A especificação é mantida em toml.io.