TOML (Tom's Obvious Minimal Language) ist ein Konfigurationsdateiformat, das für Menschen lesbar gestaltet wurde. Es bildet eindeutig auf eine Hash-Tabelle ab, unterstützt verschachtelte Tabellen, typisierte Werte und Inline-Kommentare. Viele Tools und Frameworks verwenden TOML als primäres Konfigurationsformat: Rust-Projekte setzen auf Cargo.toml, Python-Pakete verwenden pyproject.toml und Hugo-Static-Sites werden über config.toml konfiguriert. Die Online-Konvertierung von TOML zu JSON ermöglicht es, diese Konfigurationsdateien in ein Format umzuwandeln, das nahezu jede Programmiersprache, API und Datenpipeline nativ verarbeiten kann.
JSON (JavaScript Object Notation), definiert durch RFC 8259, ist das am weitesten verbreitete Datenaustauschformat. Während TOML mit seiner minimalen Syntax und Kommentarunterstützung die menschliche Lesbarkeit priorisiert, steht bei JSON die maschinelle Interoperabilität im Vordergrund. Ein TOML-zu-JSON-Konverter überbrückt diese Lücke, indem er TOML-Eingaben gemäß der TOML v1.0.0-Spezifikation parst und ein strukturell äquivalentes JSON-Dokument ausgibt. Die Konvertierung erhält alle Daten: Strings, Integer, Floats, Booleans, Arrays und Tabellen werden direkt auf ihre JSON-Entsprechungen abgebildet.
TOML verfügt über vier native Datums-/Zeittypen, die JSON nicht direkt darstellen kann: Offset-Datums-/Zeitangaben, lokale Datums-/Zeitangaben, lokale Datumsangaben und lokale Zeitangaben. Da JSON keinen Datumstyp kennt, werden diese Werte bei der Konvertierung als ISO 8601-Strings serialisiert.
Warum einen TOML-zu-JSON-Konverter verwenden?
In TOML geschriebene Konfigurationsdateien müssen häufig in Systeme eingespeist werden, die nur JSON akzeptieren. Anstatt die Datei manuell umzuschreiben oder eine Parser-Bibliothek lokal zu installieren, erledigt ein browserbasierter Konverter die Umwandlung in Sekundenschnelle.
🔒
Verarbeitung mit Datenschutz
Ihre TOML-Daten werden vollständig im Browser geparst und konvertiert. Es werden keine Daten auf einen Server hochgeladen, sodass auch Konfigurationsdateien mit API-Schlüsseln, Datenbankzugangsdaten oder internen Hostnamen sicher konvertiert werden können.
⚡
Sofortige Konvertierung
TOML einfügen und sofort formatierten JSON-Output erhalten. Keine Installation von Node.js-Paketen, Python-Bibliotheken oder CLI-Tools nur für eine einmalige Formatkonvertierung erforderlich.
🔀
Vollständige TOML v1.0.0-Unterstützung
Der Konverter unterstützt alle TOML-Datentypen, einschließlich Dotted Keys, Inline-Tabellen, Arrays von Tabellen, mehrzeilige Strings und Datums-/Zeitwerte. Grenzfälle, die bei manueller Konvertierung problematisch sind, werden korrekt behandelt.
📋
Kein Konto erforderlich
Seite öffnen, TOML einfügen und JSON-Ergebnis kopieren. Keine Registrierung, kein Ratenlimit und keine Nutzungsverfolgung. Das Tool funktioniert bei jedem Besuch gleich.
Anwendungsfälle für TOML zu JSON
Frontend-Entwicklung
Metadaten aus der Cargo.toml eines Rust-WASM-Projekts in JSON konvertieren, um sie von einem JavaScript-Build-Skript oder einem package.json-Generierungsschritt zu verarbeiten.
Backend-Engineering
In TOML geschriebene Anwendungskonfigurationen in JSON umwandeln, um sie in Umgebungen einzuschleusen, die JSON-Konfigurationen erfordern, wie AWS Lambda-Umgebungsvariablen oder Docker-Container-Labels.
DevOps und CI/CD
Pipeline-Tools wie GitHub Actions und GitLab CI arbeiten häufig mit JSON-Eingaben. TOML-basierte Tool-Konfigurationen (rustfmt.toml, taplo.toml) für Linting- oder Validierungsschritte in JSON konvertieren.
QA und Testing
JSON-Test-Fixtures aus TOML-Quelldateien generieren. TOML lässt sich dank Kommentarunterstützung und lesbarer Syntax leichter als Testdatenquelle pflegen, aber Testframeworks erwarten häufig JSON-Eingaben.
Data Engineering
Bei der Migration von Konfigurationen zwischen Systemen müssen TOML-Dateien einer Plattform (z. B. InfluxDB, Telegraf) möglicherweise zu JSON-Dokumenten für die API oder das Import-Tool einer anderen Plattform werden.
Lernen und Ausbildung
Lernende können TOML-Beispiele einfügen und genau nachvollziehen, wie Tabellen zu verschachtelten Objekten werden, wie Arrays von Tabellen zu JSON-Arrays werden und wie TOMLs Datumstypen auf Strings abgebildet werden.
TOML-zu-JSON-Typzuordnung als Referenz
Jeder TOML-Typ hat eine direkte JSON-Entsprechung – mit einer Ausnahme: Datums- und Zeitwerte. Die nachstehende Tabelle zeigt, wie jeder TOML-Typ in JSON konvertiert wird. Diese Zuordnung folgt der TOML v1.0.0-Spezifikation und entspricht dem Verhalten gängiger Parser wie tomllib (Python), toml-rs (Rust) und @iarna/toml (Node.js).
Typ
TOML-Syntax
JSON-Ausgabe
String
"value"
"value"
Integer
42
42
Float
3.14
3.14
Boolean
true / false
true / false
Offset Date-Time
1979-05-27T07:32:00Z
"1979-05-27T07:32:00Z"
Local Date-Time
1979-05-27T07:32:00
"1979-05-27T07:32:00"
Local Date
1979-05-27
"1979-05-27"
Local Time
07:32:00
"07:32:00"
Array
[1, 2, 3]
[1, 2, 3]
Table
[section]
{ "section": {} }
Inline Table
{ key = "val" }
{ "key": "val" }
Array of Tables
[[items]]
"items": [{}]
TOML-Integer unterstützen Unterstriche für bessere Lesbarkeit (z. B. 1_000_000) sowie hexadezimale (0xDEADBEEF), oktale (0o755) und binäre (0b11010110) Literale. Alle werden in JSON als dezimale Zahlen dargestellt. TOML unterstützt außerdem Infinity- und NaN-Float-Werte, die jedoch keine JSON-Entsprechung haben und im strikten Modus einen Konvertierungsfehler verursachen.
Code-Beispiele
Funktionierende Beispiele für die TOML-zu-JSON-Konvertierung in vier Sprachen. Jedes liest eine TOML-Datei, parst sie und gibt formatierten JSON-Output aus.
import tomllib # Python 3.11+ (standard library)
import json
with open('config.toml', 'rb') as f:
data = tomllib.load(f)
print(json.dumps(data, indent=2, default=str))
# Dates become strings: "1979-05-27"
# Arrays of tables become JSON arrays of objects
Go
package main
import (
"encoding/json"
"fmt"
"os"
"github.com/BurntSushi/toml"
)
func main() {
var data map[string]any
_, err := toml.DecodeFile("config.toml", &data)
if err != nil {
panic(err)
}
out, _ := json.MarshalIndent(data, "", " ")
fmt.Println(string(out))
}
Was passiert mit TOML-Kommentaren bei der Konvertierung?
TOML-Kommentare (Zeilen, die mit # beginnen) werden bei der Konvertierung verworfen. JSON unterstützt keine Kommentare, daher gibt es keine Möglichkeit, sie in der Ausgabe zu erhalten. Wenn Kommentare erhalten bleiben sollen, empfiehlt sich JSONC (JSON with Comments) als Zielformat.
Kann bei der TOML-zu-JSON-Konvertierung Datenverlust auftreten?
Bei standardkonformen TOML-Dokumenten gehen keine Daten verloren. Alle Strings, Zahlen, Booleans, Arrays und Tabellen haben direkte JSON-Entsprechungen. Die einzige Transformation betrifft Datums- und Zeitwerte, die in JSON zu ISO 8601-Strings werden. Zwei Grenzfälle können problematisch sein: TOML unterstützt Infinity- und NaN-Floats, die keine JSON-Darstellung haben, und sehr große Integer können die Präzisionsgrenzen von JSON-Parsern überschreiten (2^53 - 1 in JavaScript).
Wie werden TOML-Arrays von Tabellen in JSON dargestellt?
TOMLs [[doppelte-Klammern]]-Syntax definiert ein Array von Tabellen. Jeder [[Abschnitt]]-Block fügt ein neues Objekt an ein JSON-Array an. Zum Beispiel werden zwei [[fruits]]-Blöcke zu einem JSON-Array mit zwei Objekten: "fruits": [{...}, {...}]. Die Doppelklammer-Syntax ist einer der schwerer lesbaren Teile von TOML; die JSON-Ausgabe macht die Struktur offensichtlich.
Ist die Konvertierung umkehrbar? Kann ich von JSON zurück zu TOML gehen?
Strukturell ja. Jedes JSON-Objekt kann als TOML-Tabelle dargestellt werden, und JSON-Arrays werden zu TOML-Arrays. Allerdings gehen TOML-spezifische Merkmale wie Kommentare, Dotted-Key-Gruppierungen und Inline-Tabellenformatierung bei der ursprünglichen TOML-zu-JSON-Konvertierung verloren und können nicht wiederhergestellt werden. Der Round-Trip erzeugt gültiges, aber möglicherweise weniger lesbares TOML.
Was ist der Unterschied zwischen TOML und JSON für Konfigurationsdateien?
TOML wurde für Konfigurationen entworfen: Es unterstützt Kommentare, hat eine besser lesbare Syntax für verschachtelte Strukturen, unterscheidet zwischen Integer und Float und enthält native Datums-/Zeittypen. JSON wurde für den Datenaustausch zwischen Programmen konzipiert. JSON wird von Tools und APIs breiter unterstützt, aber TOML ist für Menschen leichter zu lesen und zu bearbeiten. Viele Projekte verwenden TOML für die Quellkonfiguration und konvertieren für den Deployment-Einsatz zu JSON.
Wie geht dieses Tool mit Dotted Keys wie server.host um?
Dotted Keys in TOML (z. B. server.host = "localhost") erzeugen in JSON verschachtelte Objekte: {"server": {"host": "localhost"}}. Dies entspricht der Definition einer [server]-Tabelle mit einem host-Schlüssel. Der Konverter löst Dotted Keys automatisch in ihre vollständige verschachtelte Struktur auf.
Warum lässt sich meine TOML-Datei nicht konvertieren?
Häufige Ursachen sind: fehlende Anführungszeichen um String-Werte (TOML erfordert sie), Verwendung von Tabulatoren für Einrückungen innerhalb mehrzeiliger Basis-Strings, doppelte Schlüsseldefinitionen sowie die Vermischung von Dotted Keys mit expliziten Tabellenheadern für denselben Pfad. Der Konverter zeigt die Parser-Fehlermeldung mit der Zeilennummer an, um die Fehlersuche zu erleichtern.