Zum Inhalt springen

TOML-zu-JSON-Konverter

Konvertieren Sie ein TOML-Konfigurationsdokument direkt in Ihrem Browser in JSON.

Eingabe
Ausgabe

TOML-zu-JSON-Konverter

Fügen Sie eine TOML-Konfigurationsdatei ein und erhalten Sie ein sauberes, strukturiertes JSON-Objekt zurück – das Format, das die meisten Skripte, APIs und Build-Tools tatsächlich erwarten. TOML ist der Standard für Rusts Cargo.toml, Pythons pyproject.toml, Hugo und unzählige App-Konfigurationen, gerade weil es für Menschen einfach zu lesen und zu schreiben ist, aber in dem Moment, in dem die Konfiguration JavaScript, einen CI-Schritt oder einen REST-Aufruf erreichen muss, ist JSON das, was der Rest der Toolchain will. Dieser Konverter schließt diese Lücke, ohne einen Parser zu installieren oder ein Skript zu schreiben.

Der Parser deckt die Teile von TOML 1.0 ab, die Sie tatsächlich in einer echten Konfiguration antreffen: bloße und in Anführungszeichen gesetzte Schlüssel, punktierte Schlüssel wie server.host, die verschachtelte Objekte erstellen, einfache Zeichenfolgen mit Escapezeichen und ihrer mehrzeiligen Form in dreifachen Anführungszeichen, Literalzeichenfolgen für Pfade, die nicht mit Escapezeichen versehen werden sollten, Ganzzahlen in Dezimalzahl, hex, Oktal oder Binär mit Unterstrich-Trennzeichen, Gleitkommazahlen einschließlich Exponenten und Inf/Nan, Boolesche Werte, Offset und lokale Datums- und Uhrzeitangaben, Arrays, die sich über mehrere Zeilen mit abschließenden Kommas erstrecken, Inline-Tabellen und sowohl [table]- als auch [[array of tables]]-Header für wiederholte Blöcke wie eine Liste von Servern oder Abhängigkeiten. Kommentare, die mit # beginnen, werden genau so gelöscht, wie TOML sie definiert.

Wählen Sie aus, wie der JSON eingerückt werden soll – zwei Leerzeichen, vier Leerzeichen, Tabulatoren oder eine einzelne minimierte Zeile zum Einfügen an anderer Stelle – und sortieren Sie optional die Schlüssel jedes Objekts alphabetisch, was die Unterscheidung zweier Versionen einer generierten Konfiguration erheblich erleichtert. Wenn das TOML ein Syntaxproblem hat, benennt das Tool die genaue Zeile und was falsch ist – eine nicht geschlossene Zeichenfolge, ein fehlendes Gleichheitszeichen, ein doppelter Schlüssel – anstatt einfach stillschweigend auszufallen.

Alles läuft lokal in Ihrem Browser. Nichts, was Sie einfügen, wird irgendwohin hochgeladen, was wichtig ist, wenn die Konfiguration Datenbankhosts, API-Endpunkte oder andere Details enthält, die Sie lieber nicht an einen Server senden möchten, nur um eine Datei neu zu formatieren.

Häufige Fragen

Welche Teile von TOML werden dadurch unterstützt?
Die praktische 1.0-Teilmenge: Schlüssel (nackte, zitierte, punktierte), einfache und literale Zeichenfolgen einschließlich mehrzeiliger Formen, Ganzzahlen in Dezimal-/Oktal-/Binärzahlen, Gleitkommazahlen mit Exponenten und Inf/Nan, boolesche Werte, Datums-/Uhrzeitangaben und Datumsangaben, Arrays, Inline-Tabellen, [Tabelle]- und [[Array von Tabellen]]-Kopfzeilen und #-Kommentare.
Was passiert mit Datumsangaben und Datums-/Zeitangaben?
TOML verfügt über echte Datums- und Uhrzeittypen, die es bei JSON nicht gibt. Daher werden sie genau so beibehalten, wie sie geschrieben wurden – als JSON-Strings wie „1979-05-27T07:32:00Z“ – und nicht in etwas anderes erraten werden.
Wie werden [[Array of Tables]]-Blöcke konvertiert?
Jeder [[name]]-Header hängt ein neues Objekt an ein Array unter diesem Schlüssel an, sodass wiederholte Blöcke – eine Liste von Abhängigkeiten, Servern oder Früchten – in der Reihenfolge, in der sie erscheinen, zu einem JSON-Array von Objekten werden.
Was macht es, wenn das TOML einen Fehler hat?
Es meldet die Zeilennummer und einen kurzen Grund – eine nicht geschlossene Zeichenfolge, ein fehlendes „=“, einen doppelt definierten Schlüssel – anstatt ein leeres oder teilweise konvertiertes Ergebnis zurückzugeben.
Wird meine Konfigurationsdatei irgendwo hochgeladen?
Nein. Die Konvertierung wird vollständig in Ihrem Browser ausgeführt und die TOML, die Sie einfügen, verlässt niemals Ihr Gerät – sicher für Konfigurationen, die Anmeldeinformationen oder interne Hostnamen enthalten.