TOML ⇄ JSON
Zwischen TOML- und JSON-Formaten konvertieren
100 % kostenlos. Läuft vollständig in deinem Browser: deine Dateien und Daten verlassen dein Gerät nie, und es wird nichts auf einen Server hochgeladen.
Drop a TOML or JSON file, click to browse, or paste
TOML, JSON · up to 5 MB · never uploaded
Über dieses Tool
TOML existiert, weil JSON eine schlechte Konfigurationssprache ist: keine Kommentare, strafende Zeichensetzung und keine Möglichkeit, einen verschachtelten Abschnitt ohne Klammertürme auszudrücken. TOML gibt dir Kommentare, schlichte key = value-Zeilen und [section]-Header, die auf verschachtelte Objekte abbilden – deshalb nutzen es Cargo, pyproject.toml, Netlify und Hugo. JSON wiederum ist das, was fast jede Bibliothek und jedes Skript wirklich liest. Zwischen ihnen zu konvertieren lässt dich eine Config für Menschen lesbar halten, während du sie einem Tool gibst, das nur JSON spricht. Dieser Konverter deckt ab, was Konfigurationsdateien wirklich enthalten: Abschnitte, dotted keys, Arrays of Tables mit [[doppelten Klammern]], Strings, Zahlen, Booleans, einzeilige Arrays und #-Kommentare. Es ist ein kompakter Parser, keine volle TOML-Implementierung – mehrzeilige Strings, inline { }-Tables und native Datumstypen sind die Fälle, die er nicht handhabt, also behandle ihn als schnellen Konverter für gewöhnliche Config, nicht als spezvollständigen Validator. Er läuft vollständig in deinem Browser.
So verwendest du dieses Tool
- Wähle die RichtungTOML zu JSON oder JSON zu TOML.
- Füge deine Config einEine Cargo.toml, pyproject.toml oder jede key = value-Datei funktioniert. Kommentare werden beim Parsen entfernt.
- Konvertieren und die Ausgabe lesen[section] wird zu einem verschachtelten Objekt, [[section]] zu einem Array von Objekten.
- Prüfe UngewöhnlichesDaten, mehrzeilige Strings und Inline-Tables sind die Fälle, die du mit dem Auge prüfen solltest.
Wie TOML auf JSON abgebildet wird
Ein [abschnitt]-Header in TOML wird zu einem verschachtelten JSON-Objekt, ein gepunkteter Key wie server.port = 8080 zu einem Objekt server mit dem Feld port, und [[doppelte Klammern]] erzeugen ein Array von Objekten – ein Eintrag pro Block. Kommentare mit # entfallen, weil JSON keine Kommentare kennt.
TOML hat echte Datums- und Zeitwerte, die in JSON zu Strings werden. Beim Zurückwandeln bleiben sie auch in TOML Strings, solange du sie nicht wieder in Datumsform bringst.
Warum es nutzen
- Behandelt die Teile von TOML, die Config-Dateien wirklich nutzen, inklusive dotted keys und Arrays of Tables.
- Konvertiert in beide Richtungen, sodass du eine JSON-Config auch in lesbares TOML bringen kannst.
- Entfernt Kommentare sauber, statt daran zu scheitern.
- Läuft in deinem Browser – Config-Dateien enthalten Tokens und Verbindungsstrings, das zählt.
- Sofort, ohne Konto oder Upload.
Häufige Anwendungen
- Eine Cargo.toml oder pyproject.toml aus einem Skript lesen, das nur JSON parst.
- Eine App-Config von JSON nach TOML migrieren, damit sie Kommentare tragen kann.
- Die Struktur prüfen, die eine TOML-Datei wirklich erzeugt, bevor du Code dagegen schreibst.
- Ein Config-Sample für Dokumentation konvertieren.
- Prüfen, ob [[table]]-Einträge so verschachteln, wie du es vorhattest.
Tipps für bessere Ergebnisse
- Konvertiere TOML nach JSON, um genau zu sehen, welche Verschachtelung deine [section]-Header erzeugen – das ist der schnellste Weg, eine Config zu debuggen, die ein Tool falsch liest.
- TOML-Daten sind ein nativer Typ; JSON hat keinen, sie kommen also als Strings an. Parse sie selbst auf der anderen Seite.
- Dieser Parser liest ein key = value pro Zeile. Schreibe mehrzeilige Strings und inline { }-Tables vor der Konvertierung in gewöhnliche Form um.
- Denk daran: [[name]] bedeutet ein Array of Tables. Eine Liste zu bekommen, wo du ein Objekt erwartet hast, bedeutet meist eine doppelte Klammer.
- Füge nie eine Config mit lebenden Secrets in einen Konverter ein, der serverseitig läuft. Dieser tut das nicht – prüfe aber, bevor du einen anderen nutzt.
Fehler, die du vermeiden solltest
- Volle TOML-Spez-Unterstützung erwarten – mehrzeilige Strings, Inline-Tables und native Daten liegen außerhalb dessen, was dieser kompakte Parser handhabt.
- Es als TOML-Validator behandeln. Zeilen, die er nicht erkennt, werden übersprungen statt gemeldet, ein sauber wirkendes Ergebnis ist also kein Beweis, dass die Datei gültig ist.
- [table] mit [[array of tables]] verwechseln, die ein Objekt bzw. eine Liste erzeugen.
- Annehmen, JSON zu TOML behalte Kommentare – das Original-JSON hatte nie welche, es kann also nichts wiederhergestellt werden.
- Vergessen, dass JSON-null kein TOML-Äquivalent hat, diese Schlüssel also weggelassen statt übersetzt werden.
Häufig gestellte Fragen
Konfiguration. Cargo.toml in Rust, pyproject.toml in Python und die Config-Dateien für Hugo, Netlify und viele andere. Es ist beliebt, weil es Kommentare erlaubt und Verschachtelung über lesbare [section]-Header ausdrückt statt über verschachtelte Klammern.
TOML hat einen nativen Datums- und Zeittyp; JSON nicht. Daten kommen daher als Strings durch, die du auf der anderen Seite parst. Zurückkonvertieren stellt sie nicht als natives TOML-Datum wieder her.
Nein, und das sollte klar sein. Es ist ein nachsichtiger Parser: Zeilen, die er nicht interpretieren kann, werden übersprungen statt als Fehler gemeldet, eine erfolgreiche Konvertierung ist also kein Beweis, dass deine Datei spezgültig ist. Nutze es zum Konvertieren und deine eigentliche Toolchain zum Validieren.
Mehrzeilige Basic- und Literal-Strings, inline { }-Tables und native Datumstypen. Alles wird zeilenweise gelesen, diese Konstrukte musst du also zuerst in schlichte key = value- oder [section]-Form umschreiben.
Ein Array of Tables. Jeder [[servers]]-Block hängt ein weiteres Objekt an ein servers-Array an – so drückt TOML eine Liste strukturierter Einträge aus. Ein Array zu bekommen, wo du ein Objekt erwartet hast, führt fast immer hierher zurück.
Nein. Alles wird in deinem Browser geparst, und das ist wichtig, weil Config-Dateien regelmäßig API-Keys und Datenbank-URLs enthalten.
Nutz einen Header mit Punkt: [server.http] erzeugt ein Objekt http innerhalb von server. Gepunktete Schlüssel in einer Zeile, etwa server.port = 8080, bewirken dasselbe inline.
TOML hat zwei String-Arten: Basis-Strings in doppelten Anführungszeichen verarbeiten Escapes wie \n, literale Strings in einfachen Anführungszeichen lassen Backslashes unverändert. Windows-Pfade gehören in einfache Anführungszeichen.
Jede [sektion] wird zu einem Objekt, [project] und [tool.black] also zu den Schlüsseln project und tool.black. Die Umwandlung in JSON zeigt schnell die Struktur, die ein Build-Tool liest.