JSON till TOML-konvertering omvandlar data från JavaScript Object Notation till Tom's Obvious Minimal Language. JSON använder klammerparenteser, hakparenteser och citerade nycklar för att representera strukturerad data. TOML använder en platt nyckel-värde-syntax med sektionsrubriker (kallade tabeller) som läses som en INI-fil men med strikt typning. TOML designades specifikt för konfigurationsfiler där läsbarhet för människor är viktigare än maskinkommunikation.
TOML har blivit standardkonfigurationsformat för Rust (Cargo.toml), Python-paketering (pyproject.toml), Hugo-statiska webbplatser, Netlify-distributionsinställningar och många CLI-verktyg. När dina källdata finns som JSON — från ett API-svar, en exporterad konfiguration eller en genererad fil — och målsystemet förväntar sig TOML behöver du en konverterare som mappar JSON-objekt till TOML-tabeller, JSON-arrayer till TOML-arrayer och bevarar varje datatyp korrekt.
Att konvertera JSON till TOML online är det snabbaste sättet att generera giltig TOML från befintlig JSON-data. Konverteringen hanterar typmappning automatiskt: JSON-strängar blir TOML-strängar, JSON-tal blir TOML-heltal eller flyttal, JSON-booleska värden mappas direkt, och JSON-objekt blir TOML-tabeller. Det enda undantaget är null — TOML har ingen null-typ, så null-värden utelämnas eller konverteras till tomma strängar beroende på konverteraren.
Varför använda den här JSON till TOML-konverteraren?
TOML är vad konfigurationsfiler förväntar sig; JSON är vad API:er och verktyg producerar. Den här konverteraren överbryggar gapet så att du kan flytta data mellan de två formaten utan manuell omskrivning.
⚡
Omedelbar konvertering
Klistra in JSON och få TOML-utdata direkt. Konverteringen körs medan du skriver utan serverroundtrips eller filuppladdningar.
🔒
Integritetsfokuserad bearbetning
All konvertering sker lokalt i din webbläsare. Konfigurationshemligheter, API-nycklar och databasinloggningar i din JSON lämnar aldrig din enhet.
🔀
Fullt strukturstöd
Nästlade objekt blir TOML-tabeller, arrayer av objekt blir arrayer av tabeller ([[table]]), och arrayer med blandade typer hanteras korrekt.
📋
Inget konto krävs
Öppna sidan och konvertera. Ingen registrering, inget tillägg att installera, inget CLI-beroende. Fungerar på alla enheter med en modern webbläsare.
Användningsfall för JSON till TOML
Rust-projektkonfiguration
Cargo.toml definierar beroenden, funktioner och bygginställningar för Rust-projekt. Konvertera JSON-beroendelistor eller genererade konfigurationer direkt till Cargo.toml-format.
Python-paketering (pyproject.toml)
PEP 518 och PEP 621 standardiserade pyproject.toml som Python-projektets metadatafil. Konvertera befintliga JSON-paketmetadata till den TOML-struktur som krävs.
Konfiguration av statiska webbplatser
Hugo, Netlify och andra generatorer för statiska webbplatser använder TOML-konfigurationsfiler. När du migrerar från en JSON-baserad konfiguration eller genererar konfiguration programmatiskt, konvertera utdata till TOML.
DevOps och infrastruktur
Verktyg som Terraform (för vissa leverantörer), Consul och olika containerkörningstider accepterar TOML-konfiguration. Konvertera JSON-exporterade inställningar till TOML utan att skriva om värden.
API-svar till konfigurationsfil
REST API:er returnerar JSON. När du behöver använda den datan som en TOML-konfiguration — till exempel för funktionsflaggor eller miljöinställningar — klistra in svaret och få giltig TOML.
Lär dig TOML-syntax
Studenter och utvecklare som är nya med TOML kan klistra in bekanta JSON-strukturer och se motsvarande TOML-utdata.
Jämförelse: JSON vs TOML
JSON och TOML överlappar i förmåga men skiljer sig i syntax, typstöd och avsedd användning. Den här tabellen visar skillnaderna som påverkar konverteringen.
TOML har regler som skiljer sig från JSON på sätt som påverkar konverteringsutdata. Dessa fyra problem orsakar mest förvirring.
Ingen null-typ i TOML
JSON stöder null som ett förstklassigt värde. TOML har ingen null-typ alls. Vid konvertering måste null-värden hanteras — antingen genom att utelämna nyckeln helt, använda en tom sträng eller välja ett sentinelvärde. Det innebär att en tur-retur från JSON till TOML och tillbaka kanske inte återger de ursprungliga null-värdena.
Heterogena arrayer är begränsade
JSON-arrayer kan blanda typer fritt: [1, "two", true]. TOML v1.0.0 kräver att alla element i en array är av samma typ. Om din JSON innehåller arrayer med blandade typer måste konverteraren antingen strängifiera alla element eller ge ett fel. Kontrollera utdata när källarrayer innehåller blandade typer.
Djupt nästlade objekt blir utförliga
JSON hanterar djup nästling naturligt med nästlade klammerparenteser. TOML använder prickade nycklar eller kedjade [table.subtable.key]-rubriker, som kan bli långa för djupt nästlade strukturer. Utdata är giltig men mindre kompakt än det ursprungliga JSON.
Begränsningar för nyckelnamn
TOML:s rena nycklar kan bara innehålla ASCII-bokstäver, siffror, bindestreck och understreck. JSON-nycklar kan vara vilken sträng som helst. Om din JSON har nycklar med mellanslag, punkter eller specialtecken måste dessa nycklar citeras i TOML-utdata. De flesta konverterare hanterar detta automatiskt, men verifiera utdata om dina nycklar innehåller ovanliga tecken.
Kodexempel
Att konvertera JSON till TOML programmatiskt kräver ett TOML-serialiseringsbibliotek i de flesta språk. Standardbibliotek tolkar JSON; TOML-utdata behöver ett dedikerat paket.
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
Vanliga frågor
Är JSON till TOML-konvertering förlustfri?
För de flesta data, ja. Strängar, heltal, flyttal, booleska värden, objekt och arrayer har alla direkta TOML-motsvarigheter. De två undantagen är null (TOML har ingen null-typ, så null-värden utelämnas eller ersätts) och arrayer med blandade typer (TOML kräver enhetliga elementtyper i arrayer). Om din JSON undviker dessa två mönster är konverteringen helt förlustfri.
Vad händer med JSON null-värden i TOML?
TOML har ingen null-typ. Konverterare utelämnar vanligtvis nycklar med null-värden från utdata, eftersom det inte finns något sätt att representera "nyckeln finns men har inget värde" i TOML. Vissa konverterare låter dig välja att använda en tom sträng istället. Kontrollera utdata om null-värden bär betydelse i dina data.
Kan TOML representera nästlade JSON-objekt?
Ja. JSON-objekt blir TOML-tabeller. Ett nästlat objekt som {"database": {"host": "localhost"}} konverteras till en [database]-tabellrubrik med host = "localhost" under den. Godtyckligt nästlingsdjup stöds via prickade nycklar eller nästlade tabellrubriker.
Varför använder Rust och Python TOML istället för JSON?
TOML stöder kommentarer, vilket är viktigt för att dokumentera konfigurationsval. Det ger också renare utdata för platta nyckel-värde-inställningar, som utgör huvuddelen av paketmetadata. JSON förbjuder kommentarer (RFC 8259), vilket gör det svårare att underhålla som ett manuellt redigerat konfigurationsformat.
Hur hanterar TOML datum och tider?
TOML har inbyggda datetime-typer: offset datetime (2024-01-15T10:30:00Z), lokal datetime, lokalt datum och lokal tid. JSON har ingen datumtyp — datum lagras som strängar. När du konverterar JSON till TOML förblir datumliknande strängar strängar om inte konverteraren uttryckligen identifierar och konverterar ISO 8601-mönster.
Är det säkert att klistra in hemligheter och inloggningsuppgifter i det här verktyget?
Ja. Konverteringen körs helt i din webbläsare med JavaScript. Ingen data skickas till någon server. Du kan verifiera detta genom att öppna webbläsarens utvecklarverktyg, växla till nätverksfliken och bekräfta att inga förfrågningar görs under konverteringen.
Vilken TOML-version följer utdata?
Utdata följer TOML v1.0.0, som släpptes i januari 2021 och är den aktuella stabila specifikationen. Den här versionen kräver enhetliga arraytyper, stöder prickade nycklar och definierar datetime-formatet. Specifikationen underhålls på toml.io.