ToolDeck

TOML

2 Tools

Die TOML-Tools von ToolDeck ermöglichen es, TOML-Konfigurationsdateien direkt im Browser zu formatieren, zu validieren und zu konvertieren — ohne Installation, ohne Konto, ohne Datenübertragung an einen Server. Der TOML Formatter parst Ihre TOML-Eingabe und serialisiert sie mit konsistenter Einrückung, normalisierter Schlüsselreihenfolge und eingebetteten Validierungsfehlern, die Syntaxprobleme präzise anzeigen. Der TOML to JSON Converter wandelt TOML-Dokumente in ihre JSON-Entsprechungen um und bewahrt dabei Datentypen wie Datetimes, Inline-Tables und Arrays of Tables. Beide Tools laufen vollständig clientseitig, sodass Ihre Konfigurationsdateien — die häufig Datenbank-Credentials, API-Endpunkte und Deployment-Secrets enthalten — auf Ihrem Rechner verbleiben. Für die umgekehrte Richtung steht der JSON to TOML Converter in der JSON-Kategorie zur Verfügung.

Was sind TOML-Tools?

TOML (Tom's Obvious, Minimal Language) ist ein Konfigurationsdateiformat mit expliziter, eindeutiger Syntax. Entwickelt von Tom Preston-Werner, Mitgründer von GitHub, wurde TOML erstmals 2013 veröffentlicht und erreichte im Januar 2021 die Spezifikation v1.0. Das Format bildet eindeutig eine Hash-Tabelle ab: Jede TOML-Datei definiert einen Baum aus Schlüssel-Wert-Paaren, gegliedert in Tables (Abschnitte in [eckigen Klammern]). Im Gegensatz zu YAML ist TOML nicht auf Einrückung zur Strukturierung angewiesen, was eine ganze Klasse von Whitespace-bedingten Parsing-Fehlern ausschließt. Im Gegensatz zu JSON unterstützt TOML Kommentare, native Datums-/Zeittypen und mehrzeilige Strings — Funktionen, die Konfigurationsdateien benötigen, die JSON nie bieten sollte.

TOML-Tools automatisieren die mechanische Arbeit des Lesens, Validierens und Konvertierens von TOML-Dateien. Formatierungstools normalisieren Einrückung und Schlüsselreihenfolge, damit Konfigurationsdateien im Team lesbar bleiben, auch wenn mehrere Entwickler dieselbe Datei bearbeiten. Konvertierungstools übersetzen zwischen TOML und JSON, was nützlich ist, wenn eine Bibliothek oder API JSON-Eingaben erwartet, die eigentliche Quelle aber eine TOML-Konfiguration ist. Validierung erkennt Syntaxfehler — eine fehlende schließende Klammer, ein doppelter Schlüssel oder ein ungültiges Datetime-Literal — bevor sie beim Start der Anwendung Fehler verursachen.

Diese Aufgaben entstehen häufig in Rust-Projekten (wo Cargo.toml das Paket-Manifest ist), beim Python-Packaging (pyproject.toml hat setup.py als Standard-Build-Konfiguration gemäß PEP 518 und PEP 621 abgelöst), bei Hugo-Static-Sites (die standardmäßig TOML für die Site-Konfiguration verwenden) und bei jeder Infrastruktur-Einrichtung, die Konfiguration in TOML-Dateien speichert. Die TOML-Spezifikation wird auf toml.io gepflegt, und Parser gibt es für alle gängigen Programmiersprachen.

Warum TOML-Tools auf ToolDeck nutzen?

ToolDeck's TOML-Tools parsen und verarbeiten alles innerhalb Ihres Browser-Tabs mit JavaScript. Es werden keine Konfigurationsdaten an einen Server übertragen, kein Konto wird benötigt, und die Tools funktionieren nach dem ersten Seitenaufruf auch offline.

🔒
Standardmäßig privat
Konfigurationsdateien enthalten häufig sensible Werte — Datenbank-URLs, API-Keys, Deployment-Ziele. ToolDeck verarbeitet TOML vollständig clientseitig, sodass nichts den Browser verlässt. Geeignet für proprietäre Projekte und interne Infrastruktur-Konfigurationen.
Sofortiges Feedback
TOML einfügen, formatierte Ausgabe oder JSON sofort sehen. Syntaxfehler werden mit Zeilennummern und Beschreibungen gemeldet. Kein Warten auf die Installation eines CLI-Tools oder den Abschluss eines Build-Schritts.
🔄
Präzise Typkonvertierung
Der TOML to JSON Converter bewahrt TOML-spezifische Typen wie Offset Datetimes, Local Dates und Local Times als ISO 8601-Strings. Integer- und Float-Präzision wird beibehalten. Arrays of Tables werden korrekt auf JSON-Arrays aus Objekten abgebildet.
🌐
Keine Installation erforderlich
Funktioniert auf jedem Gerät mit einem modernen Browser. Nützlich, wenn Sie einen Pull Request auf einem Rechner ohne Ihre übliche Entwicklungsumgebung überprüfen oder schnell die TOML-Datei eines Kollegen validieren möchten.

Anwendungsfälle für TOML-Tools

TOML-Formatierung, -Validierung und -Konvertierung sind in verschiedenen Rollen und Projekttypen gefragt. Rust-Entwickler arbeiten täglich mit Cargo.toml. Python-Entwickler konfigurieren Builds und Tools über pyproject.toml. DevOps-Engineers verwalten Anwendungskonfigurationen, die als TOML ausgeliefert werden. Die folgenden Aufgaben zeigen, wo browserbasierte TOML-Tools Zeit sparen gegenüber dem Schreiben eines Einzel-Skripts oder der Installation eines CLI-Tools.

Cargo.toml bereinigen
Nach dem Zusammenführen mehrerer Dependency-Ergänzungen weist die Cargo.toml eines Rust-Projekts inkonsistente Formatierung auf. Führen Sie sie durch den TOML Formatter, um Einrückung und Schlüsselreihenfolge vor dem Commit zu normalisieren.
pyproject.toml zu JSON
Eine CI-Pipeline benötigt Build-Metadaten im JSON-Format, aber die eigentliche Quelle ist pyproject.toml. Verwenden Sie den TOML to JSON Converter, um die JSON-Darstellung zu erzeugen und die Zuordnung zu überprüfen, bevor Sie die Konvertierung in Ihre Pipeline einbauen.
Konfigurationsmigration
Eine Anwendung wird von JSON-basierter Konfiguration auf TOML umgestellt (oder umgekehrt). Der TOML to JSON Converter ermöglicht den direkten Vergleich beider Darstellungen, um sicherzustellen, dass Datentypen, verschachtelte Strukturen und Array-Semantik erhalten bleiben.
Syntax-Debugging
Eine TOML-Konfigurationsdatei schlägt beim Anwendungsstart mit einer unklaren Fehlermeldung fehl. Fügen Sie sie in den TOML Formatter ein, um genaue Zeilen- und Spaltennummern für den Syntaxfehler zu erhalten, zusammen mit einer Beschreibung, was der Parser erwartet hat.
Dokumentationsgenerierung
Beim Schreiben von Dokumentation mit Konfigurationsbeispielen in TOML und JSON. Konvertieren Sie das kanonische TOML-Beispiel mit dem TOML to JSON Converter, damit beide Versionen ohne manuelles Abtippen synchron bleiben.
TOML-Syntax lernen
Entwickler, die neu in TOML sind, können mit dem Format experimentieren, indem sie TOML in den TOML Formatter schreiben, Validierungsfehler in Echtzeit sehen und die Struktur mit der formatierten Ausgabe vergleichen. Das ist schneller als das alleinige Lesen der Spezifikation.

TOML-Datentypübersicht

TOML v1.0 definiert die folgenden Datentypen. Jeder Typ bildet sich bei der Konvertierung nach JSON auf eine bestimmte Darstellung ab. Die Tabelle enthält Syntax, Beispiele und Konvertierungsverhalten für jeden TOML-Typ.

TypSyntaxBeispielJSON-Zuordnung
String"..." oder '...'name = "TOML"JSON-String. Basic Strings unterstützen Escape-Sequenzen (\n, \t, \u). Literal Strings ('...') behandeln Backslashes als literale Zeichen.
IntegerZiffern, 0x, 0o, 0bport = 8080JSON-Zahl. Unterstützt Hexadezimal (0xDEAD), Oktal (0o755), Binär (0b1010) und Unterstrich-Trennzeichen (1_000).
FloatZiffern mit . oder epi = 3.14159JSON-Zahl. Unterstützt inf, -inf und nan (in JSON auf null oder String abgebildet, da JSON kein NaN kennt).
Booleantrue / falseenabled = trueJSON-Boolean. Nur lowercase true und false sind gültig.
Offset Date-TimeRFC 33392024-01-15T09:30:00ZJSON-String (ISO 8601). Enthält Zeitzonen-Offset. Kein nativer JSON-Datetime-Typ.
Local Date-TimeDatum T Uhrzeit2024-01-15T09:30:00JSON-String. Ohne Zeitzoneninformation. Nützlich für wanduhrzeitbezogene Zeiten.
Local DateYYYY-MM-DD2024-01-15JSON-String. Datum ohne Uhrzeitkomponente.
Local TimeHH:MM:SS09:30:00JSON-String. Uhrzeit ohne Datum oder Zeitzone.
Array[Wert, ...]ports = [8080, 8443]JSON-Array. TOML-Arrays können in TOML v1.0 heterogen sein, müssen in v0.5 jedoch homogen sein.
TabletomlCategoryContent.r10Syntax[database]JSON-Objekt. Standard-Tables verwenden [eckige Klammern]. Inline-Tables verwenden geschweifte Klammern in einer einzigen Zeile.

TOML v1.0.0-Spezifikation (toml.io) ist die aktuelle stabile Version. Arrays of Tables verwenden [[doppelte Klammern]], um wiederholte Table-Einträge zu definieren, die auf JSON-Arrays aus Objekten abgebildet werden.

Das richtige TOML-Tool wählen

ToolDeck bietet drei Tools für die Arbeit mit TOML-Dateien. Zwei befinden sich in der TOML-Kategorie, eines in der JSON-Kategorie für die umgekehrte Konvertierungsrichtung. Wählen Sie das Tool, das zu Ihrer Aufgabe passt.

  1. 1
    Wenn Sie Folgendes benötigen eine TOML-Datei neu einrücken, die Schlüsselreihenfolge normalisieren oder TOML-Syntax mit zeilengenauer Fehlerausgabe validierenTOML Formatter
  2. 2
    Wenn Sie Folgendes benötigen eine TOML-Konfigurationsdatei in JSON umwandeln, zur Verwendung in APIs, Skripten oder Tools, die JSON-Eingaben erwartenTOML to JSON Converter
  3. 3
    Wenn Sie Folgendes benötigen ein JSON-Dokument in das TOML-Format konvertieren, für Projekte, die TOML als Konfigurationsstandard verwendenJSON to TOML Converter

Für alltägliche TOML-Arbeit übernimmt der TOML Formatter Formatierung und Validierung in einem Schritt — fügen Sie Ihr TOML ein, und er liefert entweder eine saubere Ausgabe oder zeigt genau an, wo der Syntaxfehler liegt. Wenn Sie TOML und JSON verbinden müssen, bewahrt der TOML to JSON Converter alle TOML-Datentypen einschließlich Datetimes und verschachtelter Tables. Für die umgekehrte Richtung (JSON zu TOML) nutzen Sie den JSON to TOML Converter in der JSON-Kategorie. Wenn Sie eine Konfiguration debuggen, die nicht geparst werden kann, beginnen Sie mit dem TOML Formatter: Seine Fehlermeldungen enthalten Zeilennummern und Beschreibungen der erwarteten Tokens, die spezifischer sind als das, was die meisten TOML-Parser auf Anwendungsebene melden.

Häufig gestellte Fragen

Was ist der Unterschied zwischen TOML und YAML?
TOML verwendet explizite Klammernsyntax für Tables und ist nicht auf Einrückung zur Strukturierung angewiesen. YAML definiert Hierarchien über Einrückung, was es empfindlich gegenüber Whitespace-Fehlern macht — ein einzelnes fehlerhaft gesetztes Leerzeichen kann die geparste Struktur vollständig verändern. TOML hat außerdem native Datums-/Zeittypen und verbietet doppelte Schlüssel, während YAML bei doppelten Schlüsseln lautlos den letzten Wert verwendet. TOML wird generell für Anwendungskonfiguration bevorzugt, während YAML häufiger in Kubernetes-Manifesten und CI/CD-Pipeline-Definitionen vorkommt, wo Multi-Dokument-Unterstützung und Anchors/Aliases nützlich sind.
Was ist der Unterschied zwischen TOML und JSON?
JSON ist ein Datenaustauschformat für die Maschine-zu-Maschine-Kommunikation. TOML ist ein Konfigurationsformat, das Menschen lesen und bearbeiten können. TOML unterstützt Kommentare (Zeilen, die mit # beginnen), native Datetime-Typen, mehrzeilige Strings und Tables, die die Verschachtelungstiefe reduzieren. JSON unterstützt keine Kommentare, hat keinen Datumstyp und erfordert explizite Verschachtelung mit geschweiften Klammern. JSON ist die richtige Wahl für API-Payloads und Datenspeicherung; TOML ist die richtige Wahl für Konfigurationsdateien, die Menschen manuell bearbeiten.
Kann TOML alle JSON-Datenstrukturen abbilden?
TOML kann die meisten JSON-Strukturen abbilden, aber es gibt Grenzfälle. TOML unterstützt keine Null-Werte — es gibt kein TOML-Äquivalent von JSON null. TOML-Schlüssel müssen Strings sein, was den JSON-Objektschlüsseln entspricht. TOML-Arrays waren in v0.5 auf homogene Typen beschränkt, aber TOML v1.0 erlaubt Arrays mit gemischten Typen. Tief verschachtelte JSON-Objekte können in TOML ausführlich werden, da jede Verschachtelungsebene einen eigenen Table-Header erfordert.
Welche Projekte verwenden TOML zur Konfiguration?
Das Cargo-Build-System von Rust verwendet Cargo.toml als Paket-Manifest. Python hat pyproject.toml durch PEP 518 (2016) und PEP 621 (2020) als Standard-Build-Konfigurationsdatei eingeführt. Hugo, der Static-Site-Generator, verwendet standardmäßig TOML für die Site-Konfiguration. InfluxDB verwendet TOML für seine Server-Konfiguration. Das Go-Modulsystem hat TOML in Betracht gezogen, aber ein eigenes Format gewählt; viele Go-Projekte verwenden TOML jedoch weiterhin für die Konfiguration auf Anwendungsebene über Bibliotheken wie BurntSushi/toml und pelletier/go-toml.
Wie geht TOML mit Kommentaren um?
TOML unterstützt vollständige Zeilenkommentare und Kommentare am Zeilenende mit dem Zeichen #. Alles von # bis zum Zeilenende wird vom Parser ignoriert. Kommentare können nicht in mehrzeiligen Basic Strings oder mehrzeiligen Literal Strings erscheinen. Bei der Konvertierung von TOML nach JSON werden Kommentare verworfen, da JSON keine Kommentarsyntax kennt. Das bedeutet, dass ein Roundtrip von TOML zu JSON und zurück zu TOML alle Kommentare aus der ursprünglichen Datei verliert.
Was sind Arrays of Tables in TOML?
Arrays of Tables verwenden [[doppelte Klammern]], um wiederholte Einträge derselben Table-Struktur zu definieren. Wenn [[servers]] beispielsweise zweimal erscheint, entsteht ein Array mit zwei Server-Objekten. In JSON entspricht dies einem Array aus Objekten. Arrays of Tables werden häufig für Listen von Dependencies, Server-Definitionen oder Plugin-Konfigurationen verwendet, bei denen jeder Eintrag denselben Satz von Schlüsseln hat.
Ist TOML whitespace-sensitiv?
TOML ist nicht einrückungssensitiv. Einrückung ist rein kosmetisch und hat keinen Einfluss auf das Parsing. TOML erfordert jedoch Zeilenumbrüche zur Trennung von Schlüssel-Wert-Paaren — zwei Schlüssel-Wert-Paare können nicht in derselben Zeile stehen (außer innerhalb von Inline-Tables). Inline-Tables müssen in eine einzige Zeile passen und dürfen keine Zeilenumbrüche enthalten. Dieses Design vermeidet die einrückungsbedingten Fehler, die in YAML-Dateien häufig auftreten.
Was passiert mit TOML-Datetime-Werten bei der Konvertierung nach JSON?
JSON hat keinen nativen Datetime-Typ, daher werden TOML-Datetimes in ISO 8601-Strings konvertiert. Offset Datetimes (wie 2024-01-15T09:30:00Z) behalten ihren Zeitzonen-Offset in der String-Darstellung. Local Datetimes, Local Dates und Local Times werden jeweils als Strings ohne Zeitzoneninformation serialisiert. Die Konvertierung ist verlustfrei in dem Sinne, dass der ursprüngliche Wert aus dem String zurückgeparst werden kann, aber der JSON-Konsument muss wissen, diese Strings als Datumswerte und nicht als beliebigen Text zu behandeln.