Conversor de JSON para TOML
Cole JSON e obtenha TOML no navegador, na hora. Tratamento seguro de null, verificação de tabela raiz, saída pronta para Cargo.toml e pyproject.toml.
Opções · 2 espaços
O que é TOML e porquê converter a partir de JSON?
TOML (Tom's Obvious, Minimal Language) é um formato de ficheiro de configuração construído para ser inequívoco e fácil de ler e editar por humanos. É o formato de configuração padrão para o ecossistema Rust (Cargo.toml), o packaging moderno do Python (pyproject.toml) e ferramentas como o Hugo, Netlify, Poetry e Foundry. O JSON é o formato universal de máquina que as ferramentas e APIs produzem. Converter JSON para TOML é comum quando se tem dados estruturados em JSON mas se precisa de uma configuração TOML editável por humanos como destino — gerar um Cargo.toml ou pyproject.toml, ou transformar as definições JSON de uma aplicação num ficheiro de configuração legível.
O TOML é mais estruturado que o JSON, e esta ferramenta transforma essa rigidez em orientação em vez de falhas crípticas:
**1. Imposição de tabela de nível superior.** Todo o documento TOML é uma tabela na raiz — um array ou escalar solto não é TOML válido. Em vez de emitir uma saída quebrada para uma entrada { array de nível superior }, esta ferramenta deteta-o e diz-lhe exatamente como envolver os seus dados sob uma chave, para que obtenha sempre TOML válido ou uma explicação clara.
**2. Tratamento de null seguro e transparente.** O JSON tem null; o TOML não. A maioria dos conversores ou falha ou descarta dados silenciosamente. Esta ferramenta é explícita: as chaves de objeto com valores null são descartadas e as chaves removidas são listadas num aviso, e um null dentro de um array — que não tem representação TOML válida — produz um erro preciso, apontando o caminho. Nunca é surpreendido por dados em falta.
**3. Saída TOML idiomática.** Os objetos aninhados tornam-se [tabelas], os objetos profundamente aninhados tornam-se tabelas pontilhadas ([tool.ruff]) e os arrays de objetos tornam-se arrays de tabelas ([[section]]) — a forma que os ficheiros Cargo.toml e pyproject.toml reais usam. A conversão é alimentada pela biblioteca smol-toml, sem dependências e compatível com TOML 1.0.0.
**4. Privacidade 100% no navegador.** O seu JSON — que pode conter credenciais, tokens ou detalhes de serviços internos — nunca sai do seu navegador. Sem carregamento, sem servidor, sem registo. Confirme-o no separador Rede do seu navegador.
Precisa do inverso? Use o Conversor de TOML para JSON. A trabalhar com outros formatos de configuração? Experimente o Conversor de JSON para YAML e o Conversor de YAML para JSON, ou limpe primeiro a sua entrada JSON com o Formatador JSON. Cada formato tem o seu nicho: JSON para intercâmbio entre máquinas, TOML para configuração de aplicações e ferramentas editada por humanos e YAML para manifestos de infraestrutura profundamente aninhados. Este conversor permite-lhe passar de JSON para TOML sem escrever qualquer código.
// Convert JSON to TOML in Node.js using the smol-toml library
import { stringify } from 'smol-toml';
const data = JSON.parse(`{
"package": { "name": "my-app", "version": "1.0.0" },
"dependencies": { "serde": { "version": "1.0" } }
}`);
// The top-level value must be an object; null values on objects are dropped.
const toml = stringify(data);
console.log(toml);
// [package]
// name = "my-app"
// version = "1.0.0"
//
// [dependencies.serde]
// version = "1.0" Funcionalidades principais
Conversão ao vivo
A saída TOML atualiza-se instantaneamente à medida que escreve ou cola JSON — sem necessidade de botão Converter. Entradas grandes (>200KB) mudam automaticamente para o modo manual para manter o navegador responsivo.
Orientação de tabela de nível superior
Os documentos TOML têm de ser uma tabela na raiz. Se o nível superior do seu JSON for um array ou escalar, a ferramenta diz-lhe exatamente como o envolver sob uma chave — sem saída quebrada, sem adivinhações.
Tratamento seguro de null
O TOML não tem null. As chaves de objeto com valores null são descartadas e listadas num aviso; um null dentro de um array gera um erro preciso, apontando o caminho. Sabe sempre o que aconteceu aos seus dados.
Saída TOML idiomática
Os objetos aninhados tornam-se [tabelas], os objetos profundamente aninhados tornam-se tabelas pontilhadas ([tool.ruff]) e os arrays de objetos tornam-se arrays de tabelas ([[section]]) — a forma que os Cargo.toml e pyproject.toml reais usam.
Consciência de float e inteiro
O TOML separa inteiros de floats, por isso um float como 1.0 é escrito como o inteiro 1. A ferramenta avisa-o quando esta coerção muda o tipo de um valor, para que as surpresas de ida-e-volta fiquem visíveis.
Privacidade 100% no navegador
Toda a análise corre localmente no seu navegador. O seu JSON — incluindo credenciais, tokens e detalhes de serviços internos — nunca é carregado, armazenado ou registado.
Exemplos
Fonte Cargo.toml
{
"package": {
"name": "my-app",
"version": "1.0.0",
"edition": "2021"
},
"dependencies": {
"serde": { "version": "1.0", "features": ["derive"] },
"tokio": { "version": "1", "features": ["full"] }
}
} Gere um Cargo.toml do Rust a partir de JSON — os objetos aninhados tornam-se [tabelas] e os objetos inline tornam-se tabelas inline, exatamente como o Cargo espera.
Fonte pyproject.toml
{
"build-system": {
"requires": ["hatchling"],
"build-backend": "hatchling.build"
},
"project": {
"name": "my-package",
"version": "0.3.1",
"requires-python": ">=3.10",
"dependencies": ["requests>=2.31", "pydantic>=2.0"]
}
} Gere um pyproject.toml no formato PEP 621 a partir de metadados de projeto em JSON — útil quando uma ferramenta ou API produz JSON que precisa em formato TOML.
Definições de app
{
"title": "My Service",
"debug": false,
"port": 8080,
"database": {
"host": "localhost",
"port": 5432,
"pool_size": 10
},
"features": ["auth", "metrics", "tracing"]
} Converta um objeto plano de definições de aplicação em TOML — os escalares de nível superior ficam no topo e o objeto database aninhado torna-se uma tabela [database].
Servidores (array de tabelas)
{
"servers": [
{ "name": "alpha", "ip": "10.0.0.1", "ports": [8001, 8002] },
{ "name": "beta", "ip": "10.0.0.2", "ports": [9001] }
]
} Um array de objetos torna-se um array de tabelas ([[servers]]) em TOML — a forma idiomática de exprimir secções repetidas.
Fonte de config Netlify
{
"build": {
"command": "npm run build",
"publish": "dist",
"environment": { "NODE_VERSION": "20" }
},
"redirects": [
{ "from": "/old", "to": "/new", "status": 301, "force": true }
]
} Transforme uma config de deployment em JSON num netlify.toml, com tabelas aninhadas [build] e [build.environment] e um array de tabelas [[redirects]].
Config com estrutura pontilhada
{
"tool": {
"ruff": { "line-length": 100, "target-version": "py310" },
"black": { "line-length": 100 }
}
} Objetos JSON profundamente aninhados tornam-se tabelas TOML pontilhadas como [tool.ruff] e [tool.black] — a forma que as ferramentas de pyproject.toml esperam.
Como usar
- 1
Cole o seu JSON
Introduza ou cole o seu JSON no campo de entrada acima. Também pode clicar em 'Carregar exemplo' para experimentar uma fonte Cargo.toml, uma fonte pyproject.toml ou um objeto de definições de app.
- 2
Veja a saída TOML ao vivo
O TOML aparece instantaneamente no painel de saída. Se o seu JSON tiver um array de nível superior ou valores null, a ferramenta explica exatamente o que fazer em vez de produzir uma saída quebrada.
- 3
Copie ou Baixe
Clique em Copiar para levar o TOML para a área de transferência, ou em Baixar para o guardar como ficheiro .toml pronto para o Cargo, Poetry, Hugo, Netlify ou qualquer ferramenta que leia TOML.
Armadilhas comuns de JSON para TOML
Array ou escalar de nível superior
Os documentos TOML têm de ser uma tabela (objeto) na raiz. Um array JSON ou um valor solto não podem ser um documento TOML. Envolva-o sob uma chave para o converter.
[1, 2, 3]
{ "items": [1, 2, 3] } Valores null em objetos
O TOML não tem tipo null, por isso uma chave de objeto com valor null é descartada durante a conversão. A ferramenta avisa-o de que chaves foram removidas. Se precisa de manter a chave, dê-lhe um valor real ou uma string vazia.
{ "name": "a", "nickname": null } { "name": "a", "nickname": "" } Null dentro de um array
Um array TOML não pode conter um null ou uma lacuna, por isso um JSON como [1, null, 3] não tem saída TOML válida. Remova o null ou substitua-o por um valor real antes de converter.
{ "ports": [8001, null, 8003] } { "ports": [8001, 8003] } Sintaxe JSON inválida
A entrada tem de ser primeiro JSON válido. Vírgulas finais, aspas simples e chaves sem aspas são erros comuns copiados do JavaScript que não são JSON válido e têm de ser corrigidos antes de converter.
{ 'name': 'a', 'active': true, } { "name": "a", "active": true } Float com fração zero torna-se inteiro
O TOML escreve um float cuja parte fracionária é zero (1.0) como o inteiro 1, mudando o seu tipo num ida-e-volta. A ferramenta avisa-o. Se o valor for conceptualmente um inteiro, tudo bem; se tiver de permanecer um float, o TOML não consegue preservá-lo para números inteiros.
{ "ratio": 1.0 } → ratio = 1 { "ratio": 1.5 } → ratio = 1.5 Misturar objeto e array na mesma chave
Uma chave JSON tem de ser consistentemente um objeto ou um array para mapear para uma tabela ou array de tabelas. Formas inconsistentes ao longo de um conjunto de dados podem produzir TOML confuso — normalize a estrutura primeiro.
{ "server": { "a": 1 }, "server": [1] } { "server": { "a": 1 }, "servers": [1] } Casos de uso comuns
- Gerar Cargo.toml
- Transforme JSON estruturado — de uma ferramenta de scaffolding, de uma API ou de um script — num Cargo.toml do Rust válido, com tabelas [dependencies] aninhadas e tabelas inline produzidas automaticamente.
- Gerar pyproject.toml
- Converta metadados de projeto em JSON num pyproject.toml no formato PEP 621, incluindo tabelas pontilhadas [tool.*], para que ferramentas que emitem JSON possam produzir configuração de packaging Python.
- Config editável por humanos a partir de JSON
- Transforme as definições JSON de uma aplicação num ficheiro de configuração TOML legível que os humanos possam editar confortavelmente, com comentários adicionados depois à mão.
- Geração de config de deployment
- Produza netlify.toml, foundry.toml ou configurações de plataforma semelhantes a partir de JSON, transformando objetos aninhados e arrays de objetos nas tabelas e arrays de tabelas que essas ferramentas esperam.
- Migração de formato de configuração
- Mova configuração de um sistema baseado em JSON para um baseado em TOML, usando este conversor como ponte e os avisos de null e de nível superior para apanhar tudo o que não mapear.
- Prototipagem de estrutura TOML
- Esboce uma configuração como JSON — um formato que a maioria dos programadores digita com fluência — e depois converta para TOML para ver o layout idiomático de tabelas e arrays de tabelas antes de a colocar num repositório.
Detalhes técnicos
- Análise de JSON RFC 8259
- A entrada JSON é analisada com o JSON.parse() nativo do navegador, que é totalmente compatível com o RFC 8259. Antes da serialização, a ferramenta verifica que o valor de nível superior é um objeto e procura valores null para poder avisar sobre chaves de objeto descartadas ou rejeitar um null dentro de um array com um caminho preciso.
- Saída TOML 1.0.0 via smol-toml
- O TOML é gerado com a biblioteca smol-toml, um serializador sem dependências e totalmente compatível com TOML 1.0.0. Os objetos aninhados tornam-se tabelas, os objetos profundamente aninhados tornam-se tabelas pontilhadas e os arrays de objetos tornam-se arrays de tabelas. Os floats com parte fracionária zero são escritos como inteiros conforme as regras do TOML, com um aviso.
- 100% no navegador — Sem carregamento, sem servidor
- Todo o processamento acontece no motor JavaScript do seu navegador. Nenhum dado é transmitido em momento algum. As entradas maiores que 200KB mudam do modo ao vivo para o manual (um clique explícito em Converter) para manter a interface responsiva.
Boas práticas
- Envolva arrays de nível superior sob uma chave
- Se os seus dados forem naturalmente um array JSON, envolva-os num objeto com uma chave descritiva ({ "items": [...] }) antes de converter. Os documentos TOML têm de ser uma tabela na raiz, e a chave dá ao seu array um nome claro na saída.
- Decida o que os nulls devem significar
- Antes de converter, decida se um campo null deve desaparecer (descartar a chave) ou levar um valor. O TOML descarta os nulls de objeto e rejeita os nulls de array, por isso resolvê-los primeiro no seu JSON dá uma saída previsível e completa.
- Use objetos aninhados para agrupar
- Agrupe definições relacionadas em objetos aninhados no seu JSON — tornam-se [tabelas] e tabelas pontilhadas limpas em TOML, o que é muito mais legível do que uma lista plana de chaves, correspondendo à forma como as configs do Cargo e do pyproject estão organizadas.
- Valide o seu JSON primeiro
- Se o seu JSON for escrito à mão ou vier de uma fonte pouco fiável, valide-o com o nosso Formatador JSON para apanhar vírgulas finais e erros de aspas antes de converter para TOML.
- Adicione comentários depois de converter
- O JSON não tem comentários, por isso nenhum é transposto. Como o TOML suporta comentários #, adicione documentação ao TOML gerado à mão — uma das principais razões para mover a config editada por humanos para TOML, desde logo.
Perguntas frequentes
Como converto JSON para TOML online?
O que é TOML e porquê converter JSON para ele?
Porque tem o nível superior do meu JSON de ser um objeto?
O que acontece aos valores null ao converter JSON para TOML?
Como são convertidos os objetos e arrays aninhados para TOML?
O que acontece aos números de vírgula flutuante como 1.0?
Os meus dados JSON são enviados para algum servidor?
Posso converter TOML de volta para JSON?
Como converto JSON para TOML na linha de comandos?
Como converto JSON para TOML em Python, Rust ou Node.js?
O conversor preserva a ordem das chaves?
Existe um limite de tamanho de ficheiro para a entrada JSON?
Ferramentas relacionadas
Ver todas as ferramentas →Decodificador e Codificador Base64
Codificação e Formatação
Decodifique e codifique Base64 online gratuitamente. Conversão em tempo real com suporte completo a UTF-8 e emoji. 100% privado — executa no seu navegador. Sem necessidade de cadastro.
Conversor de Base64 para Imagem
Codificação e Formatação
Decodifique uma string Base64 ou data URI de volta para imagem no navegador. Pré-visualize, leia dimensões e MIME, e baixe como PNG, JPG, GIF, SVG. Sem upload.
Conversor CSV para JSON
Codificação e Formatação
Converta CSV para JSON no navegador. RFC 4180, inferência de tipos, cabeçalho, seguro para inteiros grandes. 100% privado, sem upload.
Conversor de .env para JSON
Codificação e Formatação
Cole um arquivo .env e obtenha JSON na hora. Suas senhas, chaves de API e tokens nunca saem do navegador — 100% privado, sem upload, analisador dotenv grátis.
Decodificador de Entidades HTML — Unescape HTML
Codificação e Formatação
Decodifique entidades HTML e faça unescape de HTML online — grátis, sem cadastro, 100% no seu navegador. Converte referências nomeadas, decimais & hex de volta em caracteres; nada é enviado.
Codificador de Entidades HTML — Escapar HTML
Codificação e Formatação
Codifique entidades HTML e escape caracteres especiais (< > & " ') online — grátis, sem cadastro, 100% no seu navegador. Saída nomeada, decimal ou hex; nada é enviado.