JSON zu TOML
Kostenloser Online-JSON-zu-TOML-Konverter. JSON-Objekt einfügen und sofort eine TOML-v1.0-Konfiguration mit verschachtelten Tabellen ([section]), Untertabellen ([a.b]) und Tabellen-Arrays ([[items]]) erhalten. Erzeugt Cargo.toml, pyproject.toml, Hugo- und Prettier-Konfigurationen lokal im Browser.
Ähnliche Tools
Was ist TOML und warum JSON in TOML konvertieren?
TOML steht für Tom's Obvious, Minimal Language, ein Konfigurationsdateiformat, das 2013 von GitHub-Mitbegründer Tom Preston-Werner entwickelt wurde. Seine Designziele sind: offensichtliche Syntax, minimale Komplexität, einfache menschliche Lesbarkeit und eindeutige Semantik. TOML 1.0 wurde 2021 zur stabilen Version (toml-lang/toml) und ist heute das Standardkonfigurationsformat für das Rust-Cargo-Ökosystem, Python PEP 621 (pyproject.toml), Hugo, Prettier, Deno, Taplo und viele andere Werkzeuge.
TOML bietet in Konfigurationsszenarien mehrere klare Vorteile gegenüber JSON und YAML: ① keine Einrückungsfallen wie bei YAML — YAML drückt Hierarchie durch Einrückung aus, sodass ein Einrückungsfehler die Bedeutung einer Konfiguration komplett verändern kann (eine Liste wird zu einem String), während TOML explizite [table]-Deklarationen ohne Mehrdeutigkeit verwendet; ② besser als JSON für Konfigurationen — JSONs Anführungszeichen und geschweifte Klammern sind bei komplexen Konfigurationen umständlich, TOMLs key = value-Syntax ist sauberer und unterstützt nativ Kommentare; ③ explizites Typsystem — TOML unterscheidet sieben Typen (Integer/Float/String/Boolean/Datetime/Array/Table), ohne JSON-artige Mehrdeutigkeit darüber, ob eine Zahl ein Integer oder Float ist, und ohne das YAML-1.1-Norwegen-Problem (NO als Boolean false geparst).
TOMLs Kernstruktur besteht aus vier Elementen: ① Schlüssel-Wert-Paare (key = value) für grundlegende Konfigurationselemente; ② Tabellen, deklariert mit [name] für benannte Gruppen, mit Punkt-Verschachtelungsunterstützung ([a.b.c]); ③ Tabellen-Arrays, deklariert mit [[name]] für Listen gleichartiger Objekte, oft verwendet für Multi-Umgebungs-Konfigurationen, Plugin-Listen und Abhängigkeitslisten; ④ Arrays, die Inline-Syntax ([1, 2, 3]) oder mehrzeilige Form für primitive Sammlungen unterstützen. Das Werkzeug erkennt JSON-Strukturen während der Konvertierung intelligent und wählt die am besten geeignete TOML-Syntax.
Häufige Motivationen für die Konvertierung von JSON in TOML sind: ① Projekte vom Node.js-Ökosystem in das Rust/Python-Ökosystem migrieren und Konfigurationsformate auf TOML vereinheitlichen; ② Teams, die verstreute JSON-Konfigurationen unter TOML konsolidieren und TOMLs [section]-Hierarchie nutzen, um die Lesbarkeitslast tief verschachtelter JSONs zu vermeiden; ③ YAML durch TOML ersetzen, um einrückungsbedingte Fehler zu beseitigen; ④ Upstream-JSON-Metadaten in CI/CD in TOML für nachgelagerte Werkzeuge umwandeln. Dieses Werkzeug deckt alle diese Konvertierungsszenarien ab.
Der Konvertierungsprozess ist im Wesentlichen eine Abstract-Syntax-Tree-Zuordnung: JSON.parse() parst den Text in ein JavaScript-Objekt (AST), dann wird rekursiv jeder Knoten durchlaufen — Strings, Zahlen, Booleans und null werden auf die entsprechenden TOML-Skalare abgebildet; Arrays werden je nach Elementtyp in Inline-Arrays oder Tabellen-Arrays aufgeteilt; verschachtelte Objekte werden auf Tabellen oder Untertabellen abgebildet. Die endgültige Ausgabe ist gemäß der TOML-Spezifikation serialisierter Text. Diese strukturierte Zuordnung garantiert, dass das Konvertierungsergebnis zu 100 % syntaktisch gültig ist, ohne Formatierungsfehler.
Anwendungsfälle
- Cargo.toml für ein Rust-Projekt vorbereiten: JSON-Konfigurationen im Stil von package.json/tsconfig.json in TOML umwandeln, um zur Cargo-Toolchain zu passen
- pyproject.toml für Python-Projekte erzeugen: setup.py/setup.cfg-Metadaten im JSON-Stil in PEP-621-konforme pyproject.toml umwandeln
- Hugo-/Deno-/Prettier-Konfiguration migrieren: JSON-Werkzeugkonfigurationen in das TOML-Format für eine sauberere Sektionsstruktur überführen
- DevOps-Toolchain-Migration: CI/CD-Pipeline-Konfigurationen von JSON auf TOML vereinheitlichen, um ein konsistentes Format im Team zu erreichen
- Konfigurationsformat-Review: bestehende JSON-Konfigurationen schnell in TOML umwandeln, um zu vergleichen und das beste Format für Ihr Projekt zu wählen
- TOML-Syntax lernen: wenn Sie bereits eine JSON-Struktur haben und sehen möchten, wie TOML verschachtelte Tabellen und Tabellen-Arrays ausdrückt
Anleitung
- JSON-Inhalt links in den Editor einfügen oder auf die Upload-Schaltfläche klicken, um eine .json/.txt-Datei auszuwählen. Sie können auch auf Beispiel klicken, um ein vollständiges verschachteltes Beispiel zu laden
- Das Werkzeug analysiert JSON in Echtzeit und erzeugt TOML-Code rechts gemäß der v1.0-Spezifikation. Schlüssel-Wert-Paare, verschachtelte Tabellen und Tabellen-Arrays werden automatisch mit der passenden Syntax geschrieben
- Wenn die JSON einen Syntaxfehler enthält, wird eine rote Fehlermeldung angezeigt. Klicken Sie auf den Link, um zum JSON-Reparatur-Werkzeug zu springen und nachgestellte Kommas sowie andere häufige Fehler automatisch zu beheben
- Wenn Sie mit dem Ergebnis zufrieden sind, klicken Sie auf Kopieren, um den TOML-Inhalt zu kopieren, oder auf Download, um ihn als config.toml-Datei für Ihr Projekt zu speichern
Funktionen
- Standardkonformes TOML-v1.0-Ergebnis: funktioniert sofort mit Cargo, Poetry, Hugo, Prettier, Deno, Taplo und allen TOML-kompatiblen Werkzeugen
- Automatische Verschachtelungs-Zuordnung: mehrstufige JSON-Objekte werden zu TOML-Tabellen ([a]) und Untertabellen ([a.b.c]) mit klarer Hierarchie
- Intelligente Tabellen-Array-Erkennung: Objekt-Arrays (z. B. Datenbankverbindungslisten) werden automatisch als TOML-[[items]]-Tabellen dargestellt
- Sichere String-Escapes: doppelte Anführungszeichen, Backslashes, Zeilenumbrüche, Tabs und andere Sonderzeichen werden gemäß TOML-Regeln escaped, sodass die Ausgabe immer parsebar ist
- Automatische Typzuordnung: JSON-Strings, Zahlen, Booleans und null werden auf TOML-String/Integer/Float/Boolean abgebildet (null wird zu leerem String)
- Echtzeit-Zwei-Spalten-Editor: JSON links einfügen und sofort die TOML-Ausgabe rechts sehen, ohne Klicken erforderlich
- Schnellstart-Beispieldaten: ein komplettes Beispiel mit verschachtelten Objekten, Arrays und Tabellen-Arrays mit einem Klick laden
- Datei-Upload und Download: .json/.txt-Dateien direkt laden und das konvertierte Ergebnis als config.toml mit einem Klick herunterladen
- Größenverstellbare Panels und Verlauf: Panel-Teiler am Desktop ziehen, die letzten 200 Konvertierungen werden automatisch für einfaches Zurückblättern gespeichert
- Sprung zum JSON-Formatierer: nach der Konvertierung direkt zum JSON-Formatierer springen, um die Quell-JSON zu verschönern, zu validieren oder zu minifizieren
- Reine lokale Verarbeitung: alle Analyse- und Konvertierungsvorgänge laufen in der JavaScript-Engine des Browsers, sensible Konfigurationsdaten verlassen das Gerät nie
Häufig gestellte Fragen
Wie konvertiere ich JSON in eine TOML-Konfigurationsdatei?
Fügen Sie Ihre JSON links in den Eingabebereich ein. Das Werkzeug analysiert das JSON-Objekt automatisch und wandelt es in eine TOML-v1.0-Konfigurationsdatei um. Schlüssel-Wert-Paare werden zu key = value, verschachtelte Objekte zu TOML-Tabellen ([section]) oder Untertabellen ([a.b]), und Arrays werden je nach Elementtyp in Inline-Arrays oder Tabellen-Arrays ([[items]]) aufgeteilt. Klicken Sie auf Beispiel, um ein verschachteltes Beispiel zu laden, und laden Sie das Ergebnis als config.toml zur direkten Verwendung in Ihrem Projekt herunter.
Was sind die Unterschiede zwischen TOML, YAML und JSON?
JSON ist der De-facto-Standard für REST-APIs und Datenaustausch zwischen Frontend und Backend. YAML glänzt bei komplexen Datenstrukturen und CI/CD-Konfigurationen (GitHub Actions, Ansible, Kubernetes) mit hoher Lesbarkeit sowie Unterstützung für Kommentare und Multi-Dokument-Dateien. TOML ist auf explizite Konfigurationsszenarien ausgelegt (Rust/Cargo, Python pyproject, Hugo, Prettier) mit prägnanter Syntax, ohne Mehrdeutigkeit und ohne Einrückungsfallen. Es gibt keine einzelne beste Wahl — TOML wird für Konfigurationen empfohlen, YAML für CI/CD, JSON für API-Daten.
Wie werden verschachtelte JSON-Objekte in TOML dargestellt?
TOML verwendet Tabellen, um verschachtelte Strukturen auszudrücken. Eine Verschachtelungsebene wie {"database": {"host": "localhost"}} wird zu [database]\nhost = "localhost". Tiefere Verschachtelungen wie {"server": {"ssl": {"enabled": true}}} werden zu [server.ssl]\nenabled = true. Das Werkzeug erkennt automatisch die Verschachtelungstiefe und erzeugt die entsprechenden Punkt-Tabellen-Header — keine manuelle Anpassung erforderlich.
Wie werden JSON-Arrays in TOML konvertiert?
TOML unterstützt zwei Array-Syntaxen: ① Arrays primitiver Typen (wie ["a", "b", 1, 2]) werden zu Inline-Arrays key = ["a", "b", 1, 2], mit kommagetrennten Werten in eckigen Klammern; ② Objekt-Arrays (wie [{"name": "primary"}, {"name": "replica"}]) werden zu Tabellen-Arrays [[items]], wobei jedem Objekt ein [[items]]-Header vorangestellt wird und seine Felder darunter flach ausgegeben werden. Das Werkzeug erkennt automatisch den Array-Typ und wählt die passende TOML-Syntax.
Kann das erzeugte TOML direkt in Cargo.toml verwendet werden?
Ja. Das Werkzeug folgt strikt der offiziellen TOML-v1.0-Spezifikation (github.com/toml-lang/toml), sodass die Ausgabe direkt in Cargo (Rust-Paketmanager), Poetry/pyproject (Python-Paketmanager), Hugo (statische Seiten), Prettier, Deno, Taplo und jeder anderen TOML-kompatiblen Toolchain verwendet werden kann. Hinweis: Wenn Sie Cargo-spezifische [package]- oder [dependencies]-Abschnitte benötigen, fügen Sie bitte die erforderlichen Felder (Name, Version, Edition, Crate-Abhängigkeitstabellen usw.) manuell hinzu, damit sie dem Cargo-Manifest-Format entsprechen.
Was passiert mit JSON-null-Werten in der TOML-Ausgabe?
TOML kennt keinen null-Typ, daher werden JSON-null-Werte in einen leeren String "" umgewandelt — die häufigste gleichwertige Darstellung. Wenn Ihr TOML-Konsument besondere Anforderungen an null-Felder hat (wie das optional-Flag in [dependencies]), passen Sie bitte die entsprechende Zeile nach der Konvertierung manuell an.
Wie werden doppelte Anführungszeichen und Zeilenumbrüche in Strings behandelt?
TOML-Strings müssen in doppelte Anführungszeichen eingeschlossen sein. Interne doppelte Anführungszeichen, Backslashes, Zeilenumbrüche (\n), Wagenrückläufe (\r) und Tabs (\t) müssen gemäß TOML-Spezifikation escaped werden. Das Werkzeug erledigt dies automatisch: Zum Beispiel wird He said "Hello" in JSON zu He said \"Hello\" in TOML, und Zeilenumbrüche in mehrzeiligen Strings werden zu \n. Kein manuelles Escaping erforderlich, und die Ausgabe kann von jedem TOML-Parser korrekt verarbeitet werden.
Unterstützt das erzeugte TOML Datums- und Zeittypen?
Dieses Werkzeug akzeptiert nur JSON als Eingabe, und JSON hat keinen nativen Datums-/Zeittyp (übliche Konvention ist die Verwendung von ISO-8601-Strings wie "2026-01-01T00:00:00Z"). Nach der Konvertierung bewahrt TOML diese Werte als Strings (key = "2026-01-01T00:00:00Z"). Wenn Sie TOMLs native Datums-/Zeittypen benötigen, ändern Sie den String manuell in ein TOML-Datumsliteral (z. B. 2026-01-01T00:00:00).
Werden meine Konfigurationsdaten bei der lokalen Browserkonvertierung hochgeladen?
Nein. Die gesamte JSON-Analyse, TOML-Erzeugung und das String-Escaping laufen vollständig in der JavaScript-Engine Ihres Browsers, ohne Netzwerkaufrufe an irgendeinen Server. Das Werkzeug funktioniert auch offline. Sie können JSON mit Datenbankpasswörtern, API-Schlüsseln, internen Hostnamen und anderer sensibler Konfiguration gefahrlos konvertieren.
Fehlerbehebung
JSON zeigt "Unexpected token" Fehler — wie beheben?
Dies ist ein JSON-Syntaxfehler. Häufige Ursachen: ① nachgestellte Kommas wie {"a":1,}; ② einfache statt doppelte Anführungszeichen wie {'a':1} (JSON erfordert doppelte Anführungszeichen); ③ nicht in Anführungszeichen gesetzte Schlüssel wie {a:1}; ④ Kommentare mit // oder /* */ (vom JSON-Standard nicht unterstützt). Verwenden Sie das JSON-Reparatur-Werkzeug auf dieser Seite, um diese häufigen Fehler automatisch zu beheben, und fügen Sie dann die reparierte JSON in dieses Werkzeug zur Konvertierung ein.
Cargo meldet "invalid TOML" nach der Konvertierung — was tun?
Normalerweise handelt es sich um einen Feldnamenskonflikt oder ein fehlendes Pflichtfeld. Der TOML-Parser ist streng bei Tabellen-Header-Pfaden, doppelten Schlüsseln und Zeichen-Escapes. Bitte prüfen Sie: ① ob es doppelte Schlüssel im selben Geltungsbereich gibt; ② ob Sonderzeichen innerhalb von Strings korrekt escaped sind (doppelte Anführungszeichen, Backslashes, Zeilenumbrüche); ③ ob die Verschachtelungstiefe zu groß ist (TOML 1.0 empfiehlt nicht mehr als 5 Ebenen); ④ ob erforderliche Cargo-Abschnitte wie [package] fehlen. Die Ausgabe des Werkzeugs ist zu 100 % syntaktisch gültig, daher liegt das Problem normalerweise auf der Konsumentenseite (z. B. ob Feldnamen den Cargo-Manifest-Regeln entsprechen).
Objekt-Array wurde in ein Inline-Array statt in ein Tabellen-Array umgewandelt?
Ein JSON-Array wird nur dann zu einem Inline-Array wie ["a","b"], wenn jedes Element ein primitiver Typ ist (String/Number/Boolean/null). Ein Array von Objekten (wie [{"name":"x"}]) wird zu einem Tabellen-Array [[items]]. Wenn Ihr Objekt-Array fälschlicherweise als Inline-Array erkannt wurde, enthält das Array Nicht-Objekt-Elemente. Bitte überprüfen Sie die Daten: ① ob das Array gemischte Strings oder Zahlen enthält; ② ob die Verschachtelungsebene unterbrochen wurde.
Einige Schlüssel sind nach der Konvertierung in Anführungszeichen — wie entfernen?
TOML erlaubt in unquoted Schlüsseln nur Buchstaben, Ziffern, Unterstriche und Bindestriche ([A-Za-z0-9_-]). Wenn ein JSON-Schlüssel Sonderzeichen (Leerzeichen, Punkte, chinesische Zeichen, Emoji, reservierte Wörter) enthält, umschließt das Werkzeug den Schlüssel automatisch mit doppelten Anführungszeichen, damit das TOML gültig bleibt. Zum Beispiel wird {"my key": 1} zu "my key" = 1. Wenn Ihr nachgelagertes Werkzeug keine in Anführungszeichen gesetzten Schlüssel akzeptiert, benennen Sie die JSON-Schlüssel vor der Konvertierung in zulässige Zeichen (A-Z a-z 0-9 _ -) um.
Browser hängt bei der Konvertierung großer Dateien — was tun?
Das Werkzeug ist auf Echtzeit-Konvertierung optimiert, aber sehr große Dateien (> 1 MB, Hunderttausende Zeilen) können dennoch Druck verursachen. Empfehlungen: ① Verwenden Sie zunächst das JSON-Formatierer-Werkzeug, um die Gültigkeit der JSON zu prüfen; ② in Stapeln konvertieren (z. B. nach Top-Level-Schlüsseln aufteilen); ③ stellen Sie sicher, dass Ihr Browser über genügend Speicher verfügt; ④ für sehr große Konfigurationsdateien (10 MB+) erwägen Sie die Verwendung eines Befehlszeilenwerkzeugs wie taplo oder tomlq. Dieses Werkzeug zielt auf alltägliche Konfigurationsszenarien (KB bis wenige hundert KB).
Glossar
- TOML
- Tom's Obvious, Minimal Language — eine konfigurationsorientierte Format-Sprache mit prägnanter, eindeutiger Syntax, das Standardkonfigurationsformat für Rust Cargo, Python pyproject und Hugo.
- Tabelle
- In TOML eine benannte Gruppe, deklariert mit [name], äquivalent zu einem JSON-Objekt, mit Punkt-Verschachtelungsunterstützung wie [server.ssl].
- Tabellen-Array
- In TOML eine Liste gleichartiger Objekte, deklariert mit [[name]]; jedes [[name]]-Segment enthält die Felder eines Objekts, äquivalent zu einem JSON-Objekt-Array.
- Inline-Tabelle
- Eine von TOML 1.0 unterstützte Syntax, die einfache Objekte einzeilig mit { key = value, key = value } deklariert, geeignet für unbenannte flache Objekte.
- Cargo.toml
- Die Standardkonfigurationsdatei für Rust-Projekte, die Paket-Metadaten, Abhängigkeiten, dev-Abhängigkeiten, Features und mehr im TOML-Format definiert.
- pyproject.toml
- Die Standardkonfigurationsdatei für Python-Projekte (PEP 621), die Build-System, Projektmetadaten, Abhängigkeiten und Werkzeugkonfigurationen (black, pytest, mypy usw.) definiert.
- TOML v1.0
- Die 2021 offiziell veröffentlichte stabile Version von TOML, der dieses Werkzeug strikt folgt (github.com/toml-lang/toml/blob/main/toml.md).
- Verschachteltes JSON-Objekt
- Ein JSON-Objekt, das andere Objekte enthält, entsprechend einer TOML-Tabelle ([section]) oder Untertabelle ([a.b.c]).
- TOML-Escape
- Sonderzeichen innerhalb von TOML-Strings (doppelte Anführungszeichen, Backslashes, Zeilenumbrüche usw.) müssen mit Backslashes escaped werden (\" \\ \n), das Werkzeug erledigt dies automatisch.
- Konfigurationsdatei
- Eine Einstellungsdatei, die von einer Anwendung beim Start gelesen wird, getrennt vom Code zur einfachen Änderung. TOML ist einer der De-facto-Standards für Konfigurationsdateien.
JSON-zu-TOML-Typzuordnung
Dieses Werkzeug bildet JSON-Typen mit den folgenden Regeln auf TOML-Typen ab:
| JSON-Typ | TOML-Typ | TOML-Syntax | Hinweise |
|---|---|---|---|
| string | string | key = "value" | TOML-Strings müssen doppelte Anführungszeichen verwenden |
| integer | integer | key = 8080 | Integer haben keinen Dezimalpunkt |
| float | float | key = 3.14 | Floats müssen einen Dezimalpunkt haben |
| boolean | boolean | key = true | TOML verwendet nur Kleinschreibung true / false |
| null | string (leer) | key = "" | TOML hat kein null; wird zu leerem String |
| array[primitive] | array | key = ["a", "b"] | Primitive Arrays verwenden Inline-Klammern |
| array[object] | array of tables | [[items]]\nkey = value | Objekt-Arrays verwenden [[name]]-Tabellen |
| object | table | [name]\nkey = value | Objekte verwenden [name]-Tabellen-Header |
TOML-String-Escape-Referenz
Sonderzeichen, die in TOML-Strings escaped werden müssen:
| Original | TOML-Escape | Name | Beispielanwendung |
|---|---|---|---|
" | \" | Doppeltes Anführungszeichen | Verschachtelte doppelte Anführungszeichen innerhalb von Strings |
\ | \\ | Backslash | Windows-Pfade wie C:\Users |
newline | \n | Zeilenumbruch | Mehrzeilige Strings komprimieren |
tab | \t | Tabulator | Tab-getrennte Feldwerte |
return | \r | Wagenrücklauf | Windows-CRLF-Zeilenenden |
\b | \b | Backspace | Backspace-Zeichen |
\f | \f | Seitenvorschub | Form-Feed-Zeichen |
U+0000 | \u0000 | Unicode 0 | Steuerzeichen müssen \u-Escape verwenden |
JSON-zu-TOML-Konvertierungsbeispiele
Komplexe JSON-Eingaben und ihre TOML-Ausgaben:
| Struktur | Beispiel |
|---|---|
| JSON-Eingabe | { "name": "app", "port": 8080 } |
| TOML-Ausgabe | name = "app"
port = 8080 |
| JSON-Eingabe | { "server": { "host": "0.0.0.0", "port": 443 } } |
| TOML-Ausgabe | [server]
host = "0.0.0.0"
port = 443 |
| JSON-Eingabe | { "hosts": [{"ip":"10.0.0.1"},{"ip":"10.0.0.2"}] } |
| TOML-Ausgabe | [[hosts]]
ip = "10.0.0.1"
[[hosts]]
ip = "10.0.0.2" |
Privacy & Security
Dieses Werkzeug führt alle JSON-Analyse, TOML-Erzeugung, String-Escapes und Datei-Lesen in der JavaScript-Engine Ihres lokalen Browsers aus. Ihre JSON-Inhalte und die erzeugte TOML-Konfiguration werden niemals über das Netzwerk an einen Server gesendet und niemals aufgezeichnet oder analysiert. JSON mit Datenbankpasswörtern, API-Schlüsseln, internen Hostnamen und anderer sensibler Konfiguration kann gefahrlos konvertiert werden. Lokale Verläufe werden nur im localStorage Ihres eigenen Browsers gespeichert und können durch Schließen des Browsers oder Leeren des Caches gelöscht werden.
Authoritative References
- toml-langTOML Offizielle Spezifikation v1.0
- GitHubTOML GitHub-Repository
- WikipediaTOML — Wikipedia
- Rust OffiziellCargo Manifest Format Referenz
- JSON-Komprimierung
- CSV zu JSON
- JSON zu CSV
- JSON Diff
- JSON Escape / Unescape
- JSON Flatten
- JSON-Formatierung
- JSON-Generator
- JSONPath Online-Abfrage
- JSON zusammenführen
- JSON reparieren
- JSON Schema Validator
- JSON sortieren
- JSON Stringify
- JSON zu HTML-Tabelle
- JSON zu Java
- JSON zu Markdown
- JSON in SQL umwandeln
- JSON zu TOML
- JSON zu TypeScript
- XML zu JSON
- JSON zu XML
- YAML zu JSON
- JSON zu YAML
- JSON zu Python
- JSON zu Go
- JSON zu Rust
- JSON zu Swift
- JSON zu C#
- JSON zu C++
- JSON zu PHP