TOML-zu-JSON-Konverter
Wandeln Sie TOML in JSON und JSON zurück in TOML um – Cargo.toml, pyproject.toml und alle anderen –, mit intakten Tabellen und Datumswerten.
Eingabe
Ergebnis
Das Ergebnis erscheint hier.In TOML sind Cargo.toml, pyproject.toml, netlify.toml und viele Hugo-Websites geschrieben, und früher oder später brauchen Sie eine dieser Dateien als JSON – um sie mit jq abzufragen, an ein Skript zu übergeben oder zwei Versionen strukturell zu vergleichen. Dieses Werkzeug konvertiert in beide Richtungen mit smol-toml, einem kleinen Parser und Serialisierer für TOML 1.1, der die meisten Tests der offiziellen toml-test-Suite besteht; die Spezifikation selbst liegt unter toml-lang/toml. Syntaxfehler werden mit Zeile und Spalte gemeldet, und der Konverter bricht unter Nennung des genauen Schlüssels ab, statt stillschweigend etwas zu verlieren, das eines der Formate nicht ausdrücken kann.
So arbeitet es
- Inline-Tabellen, gepunktete Schlüssel und Arrays von Tabellen wie [[bin]] werden allesamt zu gewöhnlichen verschachtelten JSON-Objekten und -Arrays.
- Datums-Zeit-Werte mit Offset werden zu ISO-8601-Strings; lokale Datums- und Zeitangaben behalten die Form, in der sie geschrieben wurden, etwa 1979-05-27.
- JSON-null hat in TOML keine Entsprechung, daher nennt der Konverter den Schlüssel, statt ihn wegzulassen – was smol-toml sonst tun würde.
- In Richtung TOML werden verschachtelte Objekte zu [table]-Abschnitten und Arrays von Objekten zu [[array]]-Tabellen.
Wohin Ihre Daten gehen
Nirgendwohin. Dieses Werkzeug läuft vollständig in Ihrem Browser: Der eingefügte Text wird von der Seite verarbeitet und weder an einen Server übertragen noch protokolliert.
Dieses Tool ist kostenlos und braucht kein Konto. Die Ergebnisse existieren nur in Ihrer geöffneten Seite und werden nirgends gespeichert.
Was es kostet
Dieses Werkzeug ist kostenlos, ohne Anmeldung und ohne Punkte.
Häufige Fragen
- Warum bricht ein null-Wert die Konvertierung ab?
- TOML kennt kein null. Ein Konverter, der den Schlüssel stillschweigend überspringt, erzeugt eine Datei, die richtig aussieht und sich anders verhält; dieser hier verweigert deshalb und sagt Ihnen, wo – als Pfad wie $.package.homepage. Entfernen Sie den Schlüssel oder geben Sie ihm einen echten Wert, etwa einen leeren String oder false.
- Warum kommt mein Datums-Zeit-Wert als String in Anführungszeichen zurück?
- JSON hat keinen Datumstyp, also wird ein TOML-Datums-Zeit-Wert auf dem Weg zu JSON zum String. Wandeln Sie dieses JSON zurück, entsteht ein String in Anführungszeichen statt eines nackten TOML-Datums, weil nichts im JSON verrät, dass es je ein Datum war. Entfernen Sie die Anführungszeichen, wenn der Empfänger einen echten TOML-Datums-Zeit-Wert braucht.
- Bleiben Kommentare und die Reihenfolge der Schlüssel erhalten?
- Von TOML zu JSON bleibt die Reihenfolge der Schlüssel erhalten. Von JSON zu TOML werden die einfachen Schlüssel jeder Tabelle vor ihren Untertabellen geschrieben, weil in TOML ein Schlüssel nach einer [table]-Überschrift zu dieser Tabelle gehört. Kommentare bleiben nicht erhalten: Sie werden beim Parsen des TOML verworfen, da JSON keinen Platz für sie hat; ein Hin- und Rückweg über JSON liefert die Daten also ohne die Erläuterungen zurück. Behalten Sie die TOML-Datei als maßgebliche Quelle und erzeugen Sie das JSON daraus.
- Was passiert mit sehr großen Ganzzahlen?
- TOML-Ganzzahlen sind 64 Bit groß, JavaScript-Zahlen sind nur bis 2^53 exakt. Statt 9007199254740993 auf eine andere Zahl zu runden, meldet der Parser einen Fehler. Solche Werte, etwa Snowflake-IDs, sind als Strings sicherer gespeichert. Ebenso werden inf und nan abgelehnt, weil JSON sie nicht darstellen kann.
Das Open Source dahinter
Dieses Werkzeug läuft auf squirrelchat/smol-toml, veröffentlicht unter BSD-3-Clause. Wer dasselbe Verhalten im eigenen Programm braucht, greift zu dieser Bibliothek.
squirrelchat/smol-tomlAuch bekannt als
- TOML zu JSON
- JSON zu TOML
- TOML Konverter
- TOML Parser online
- Cargo.toml in JSON umwandeln
- pyproject.toml zu JSON