ToolDeck

JSON to TOML

JSON in das TOML-Format konvertieren

Beispiel ausprobieren

JSON-Eingabe

TOML-Ausgabe

Läuft lokal · Sicher zum Einfügen von Secrets
TOML-Ausgabe erscheint hier…

Was ist die JSON-zu-TOML-Konvertierung?

Die JSON-zu-TOML-Konvertierung überführt Daten aus JavaScript Object Notation in Tom's Obvious Minimal Language. JSON verwendet geschweifte Klammern, eckige Klammern und Schlüssel in Anführungszeichen, um strukturierte Daten darzustellen. TOML verwendet eine flache Schlüssel-Wert-Syntax mit Abschnittsheadern (sogenannte Tables), die wie eine INI-Datei aussieht, aber strikte Typisierung bietet. TOML wurde speziell für Konfigurationsdateien entwickelt, bei denen menschliche Lesbarkeit wichtiger ist als der maschinelle Datenaustausch.

TOML ist das Standard-Konfigurationsformat für Rust (Cargo.toml), Python-Pakete (pyproject.toml), Hugo-Static-Sites, Netlify-Deployment-Einstellungen und viele CLI-Tools. Wenn deine Quelldaten als JSON vorliegen — aus einer API-Antwort, einer exportierten Konfiguration oder einer generierten Datei — und dein Zielsystem TOML erwartet, benötigst du einen Konverter, der JSON-Objekte auf TOML-Tables, JSON-Arrays auf TOML-Arrays abbildet und jeden Datentyp korrekt erhält.

Die Online-Konvertierung von JSON nach TOML ist der schnellste Weg, aus bestehenden JSON-Daten gültiges TOML zu erzeugen. Die Konvertierung übernimmt die Typzuordnung automatisch: JSON-Strings werden zu TOML-Strings, JSON-Zahlen zu TOML-Integer oder Floats, JSON-Booleans werden direkt übernommen, und JSON-Objekte werden zu TOML-Tables. Die einzige Ausnahme ist null — TOML kennt keinen null-Typ, daher werden null-Werte je nach Konverter entweder weggelassen oder in leere Strings umgewandelt.

Warum diesen JSON-zu-TOML-Konverter verwenden?

TOML ist das, was Konfigurationsdateien erwarten; JSON ist das, was APIs und Tools produzieren. Dieser Konverter überbrückt die Lücke, damit du Daten zwischen den beiden Formaten verschieben kannst, ohne manuell neu zu schreiben.

Sofortige Konvertierung
JSON einfügen und TOML-Ausgabe sofort erhalten. Die Konvertierung läuft während der Eingabe ohne Server-Roundtrips oder Datei-Uploads.
🔒
Datenschutz-First-Verarbeitung
Die gesamte Konvertierung findet lokal in deinem Browser statt. Konfigurationsgeheimnisse, API-Keys und Datenbankzugangsdaten in deinem JSON verlassen niemals dein Gerät.
🔀
Vollständige Strukturunterstützung
Verschachtelte Objekte werden zu TOML-Tables, Arrays von Objekten werden zu Arrays of Tables ([[table]]), und gemischttypisierte Arrays werden korrekt behandelt.
📋
Kein Konto erforderlich
Seite öffnen und konvertieren. Keine Registrierung, keine Extension zu installieren, keine CLI-Abhängigkeit. Funktioniert auf jedem Gerät mit einem modernen Browser.

JSON-zu-TOML-Anwendungsfälle

Rust-Projektkonfiguration
Cargo.toml definiert Abhängigkeiten, Features und Build-Einstellungen für Rust-Projekte. JSON-Abhängigkeitslisten oder generierte Konfigurationen direkt in das Cargo.toml-Format konvertieren.
Python-Paketierung (pyproject.toml)
PEP 518 und PEP 621 haben pyproject.toml als Python-Projektmetadatendatei standardisiert. Bestehende JSON-Paketmetadaten in die erforderliche TOML-Struktur konvertieren.
Statische Site-Konfiguration
Hugo, Netlify und andere Static-Site-Generatoren verwenden TOML-Konfigurationsdateien. Beim Migrieren von einem JSON-basierten Setup oder bei der programmatischen Konfigurationsgenerierung die Ausgabe in TOML konvertieren.
DevOps & Infrastruktur
Tools wie Terraform (für bestimmte Provider), Consul und verschiedene Container-Runtimes akzeptieren TOML-Konfiguration. JSON-exportierte Einstellungen in TOML konvertieren, ohne Werte neu einzutippen.
API-Antwort zur Konfigurationsdatei
REST-APIs liefern JSON zurück. Wenn diese Daten als TOML-Konfiguration benötigt werden — zum Beispiel für Feature-Flags oder Umgebungseinstellungen — die Antwort einfügen und gültiges TOML erhalten.
TOML-Syntax erlernen
Einsteiger und Entwickler, die TOML noch nicht kennen, können vertraute JSON-Strukturen einfügen und die äquivalente TOML-Ausgabe sehen.

JSON vs. TOML — Vergleich

JSON und TOML überschneiden sich in ihren Möglichkeiten, unterscheiden sich aber in Syntax, Typunterstützung und dem vorgesehenen Einsatzbereich. Diese Tabelle zeigt die Unterschiede, die die Konvertierung beeinflussen.

MerkmalJSONTOML
SyntaxBraces, brackets, colons, commasKey = value, [table], [[array]]
CommentsNot allowed (RFC 8259)Supported with #
Data typesstring, number, boolean, null, object, arraystring, integer, float, boolean, datetime, array, table
null supportNative (null)No null type — omit the key or use empty string
Nested objectsUnlimited nesting depthDotted keys or [table.subtable] headers
Arrays of objectsArray of objects with [][[array-of-tables]] syntax
ReadabilityModerate — bracket-heavy at depthHigh — flat key-value pairs
SpecRFC 8259 / ECMA-404TOML v1.0.0 (toml.io)

TOML-Konvertierungsfallstricke

TOML hat Regeln, die sich von JSON unterscheiden und die Konvertierungsausgabe beeinflussen. Diese vier Punkte verursachen die meiste Verwirrung.

Kein null-Typ in TOML
JSON unterstützt null als eigenständigen Wert. TOML kennt keinen null-Typ. Bei der Konvertierung müssen null-Werte behandelt werden — entweder durch vollständiges Weglassen des Schlüssels, Verwendung eines leeren Strings oder eines Platzhalterwertes. Das bedeutet, dass eine Hin-und-zurück-Konvertierung von JSON zu TOML und zurück die ursprünglichen null-Werte möglicherweise nicht wiederherstellt.
Heterogene Arrays sind eingeschränkt
JSON-Arrays können Typen beliebig mischen: [1, "two", true]. TOML v1.0.0 verlangt, dass alle Elemente eines Arrays denselben Typ haben. Enthält dein JSON gemischttypisierte Arrays, muss der Konverter entweder alle Elemente in Strings umwandeln oder einen Fehler melden. Prüfe die Ausgabe, wenn Quellarrays gemischte Typen enthalten.
Tief verschachtelte Objekte werden ausführlicher
JSON verarbeitet tiefe Verschachtelungen mit verschachtelten Klammern auf natürliche Weise. TOML verwendet Punkt-Schlüssel oder verkettete [table.subtable.key]-Header, die bei tief verschachtelten Strukturen lang werden können. Die Ausgabe ist gültig, aber weniger kompakt als das JSON-Original.
Einschränkungen bei Schlüsselnamen
TOML-Bare-Keys dürfen nur ASCII-Buchstaben, Ziffern, Bindestriche und Unterstriche enthalten. JSON-Schlüssel können beliebige Strings sein. Wenn dein JSON Schlüssel mit Leerzeichen, Punkten oder Sonderzeichen enthält, müssen diese Schlüssel in der TOML-Ausgabe in Anführungszeichen gesetzt werden. Die meisten Konverter behandeln das automatisch, aber prüfe die Ausgabe, wenn deine Schlüssel ungewöhnliche Zeichen enthalten.

Code-Beispiele

Die programmatische Konvertierung von JSON nach TOML erfordert in den meisten Sprachen eine TOML-Serialisierungsbibliothek. Standard-Bibliotheken übernehmen das JSON-Parsing; für die TOML-Ausgabe wird ein dediziertes Paket benötigt.

JavaScript (Node.js)
import { stringify } from '@iarna/toml'

const json = '{"title":"My App","database":{"host":"localhost","port":5432}}'
const obj = JSON.parse(json)
const toml = stringify(obj)
console.log(toml)
// → title = "My App"
// →
// → [database]
// → host = "localhost"
// → port = 5432
Python
import json
import tomli_w  # pip install tomli_w

json_str = '{"title": "My App", "database": {"host": "localhost", "port": 5432}}'
data = json.loads(json_str)
toml_str = tomli_w.dumps(data)
print(toml_str)
# → title = "My App"
# →
# → [database]
# → host = "localhost"
# → port = 5432
Go
package main

import (
    "encoding/json"
    "fmt"
    "github.com/pelletier/go-toml/v2"
)

func main() {
    jsonStr := `{"title":"My App","database":{"host":"localhost","port":5432}}`
    var data map[string]interface{}
    json.Unmarshal([]byte(jsonStr), &data)

    tomlBytes, _ := toml.Marshal(data)
    fmt.Println(string(tomlBytes))
    // → title = 'My App'
    // →
    // → [database]
    // → host = 'localhost'
    // → port = 5432
}
CLI (yj / remarshal)
# Using yj (https://github.com/sclevine/yj)
echo '{"title":"My App","port":3000}' | yj -jt
# → title = "My App"
# → port = 3000

# Using remarshal (pip install remarshal)
echo '{"title":"My App","port":3000}' | remarshal -if json -of toml
# → title = "My App"
# → port = 3000

Häufig gestellte Fragen

Ist die JSON-zu-TOML-Konvertierung verlustfrei?
Für die meisten Daten ja. Strings, Integer, Floats, Booleans, Objekte und Arrays haben alle direkte TOML-Entsprechungen. Die zwei Ausnahmen sind null (TOML hat keinen null-Typ, daher werden null-Werte weggelassen oder ersetzt) und gemischttypisierte Arrays (TOML erfordert einheitliche Array-Elementtypen). Wenn dein JSON diese beiden Muster vermeidet, ist die Konvertierung vollständig verlustfrei.
Was passiert mit JSON-null-Werten in TOML?
TOML hat keinen null-Typ. Konverter lassen Schlüssel mit null-Werten in der Ausgabe in der Regel weg, da es keine Möglichkeit gibt, "Schlüssel existiert, hat aber keinen Wert" in TOML darzustellen. Manche Konverter erlauben die Verwendung eines leeren Strings stattdessen. Prüfe die Ausgabe, wenn null-Werte in deinen Daten eine Bedeutung tragen.
Kann TOML verschachtelte JSON-Objekte darstellen?
Ja. JSON-Objekte werden zu TOML-Tables. Ein verschachteltes Objekt wie {"database": {"host": "localhost"}} wird zu einem [database]-Table-Header mit host = "localhost" darunter konvertiert. Beliebige Verschachtelungstiefe wird durch Punkt-Schlüssel oder verschachtelte Table-Header unterstützt.
Warum verwenden Rust und Python TOML statt JSON?
TOML unterstützt Kommentare, die für die Dokumentation von Konfigurationsentscheidungen unverzichtbar sind. Es erzeugt auch eine sauberere Ausgabe für flache Schlüssel-Wert-Einstellungen, die den Großteil der Paketmetadaten ausmachen. JSON verbietet Kommentare (RFC 8259), was es schwieriger macht, als manuell gepflegte Konfiguration zu verwenden.
Wie geht TOML mit Datums- und Zeitangaben um?
TOML hat native Datetime-Typen: Offset-Datetime (2024-01-15T10:30:00Z), lokales Datetime, lokales Datum und lokale Uhrzeit. JSON hat keinen Datumtyp — Datumsangaben werden als Strings gespeichert. Bei der Konvertierung von JSON nach TOML bleiben datumähnliche Strings als Strings erhalten, es sei denn, der Konverter erkennt und konvertiert ISO-8601-Muster explizit.
Ist es sicher, Geheimnisse und Zugangsdaten in dieses Tool einzufügen?
Ja. Die Konvertierung läuft vollständig in deinem Browser mit JavaScript. Es werden keine Daten an einen Server übertragen. Das lässt sich überprüfen, indem du die Entwicklertools deines Browsers öffnest, zum Netzwerk-Tab wechselst und bestätigst, dass während der Konvertierung keine Anfragen gestellt werden.
Welcher TOML-Version folgt die Ausgabe?
Die Ausgabe folgt TOML v1.0.0, das im Januar 2021 veröffentlicht wurde und die aktuelle stabile Spezifikation ist. Diese Version erfordert einheitliche Array-Typen, unterstützt Punkt-Schlüssel und definiert das Datetime-Format. Die Spezifikation wird unter toml.io gepflegt.