JSON to TOML

Konvertieren Sie JSON-Dokumente in TOML mit konfigurierbarer Einrückung und Pretty-Print-Umschaltern.

Konvertieren Sie JSON-Dokumente in TOML mit konfigurierbarer Einrückung und Pretty-Print-Umschaltern. Konvertieren Sie JSON-Dokumente in TOML mit konfigurierbarer Einrückung und Pretty-Print-Umschaltern.

Ausgabe

Hintergrund

Warum JSON in TOML konvertieren

JSON ist überall in der Übertragung präsent, aber TOML ist das Format, das die meisten modernen Konfigurationsdateien tatsächlich verwenden (Cargo, pyproject.toml, GitHub Actions, uv und viele mehr). Wenn Sie ein JSON-Schnipsel aus einer API in eine Konfigurationsdatei kopieren, müssen Sie die Syntax normalerweise von Hand übersetzen: Klammern werden zu Abschnitten, eckige Klammern zu Arrays, Kommas zu Zeilenumbrüchen und in Anführungszeichen gesetzte Schlüssel zu nackten Schlüsseln.

Ein Konverter automatisiert diese Übersetzung, sodass Sie die API-Antwort einfügen, die TOML-Ausgabe kopieren und fertig sind.

Nützliche Funktionen

Die meisten Konverter bewahren die JSON-Objekt-Reihenfolge standardmäßig. TOML erlaubt das Neuanordnen von Abschnitten, sodass eine Option "Schlüssel sortieren" hilft, wenn Sie zwischen Durchläufen einen stabilen Diff wollten. Die Einrückungssteuerung lässt Sie den Styleguide des Projekts anpassen (zwei oder vier Leerzeichen).

Für Arrays von Tabellen in TOML gibt der Konverter die Inline-Form key = [ ... ] aus, wenn das JSON-Array ein einzelnes einheitliches Objekt enthält, und eine Kopf-Form [[section]] für Listen, die Typen mischen oder dasselbe Schema wiederholen. Dies ist der einzige Fall, in dem die Konvertierung nicht vollständig mechanisch ist.

Arbeitsablauf-Tipps

Bevor Sie das TOML committen, prüfen Sie doppelt, dass die von Ihnen in JSON verwendeten Schlüssel legale TOML-nackte Schlüssel sind (keine Leerzeichen, keine führenden Ziffern, keine Bindestriche am Anfang). Der Konverter übernimmt die Namen wortwörtlich; er benennt sie nicht um. Nach der Konvertierung in Ihren Editor einfügen und den Linter Ihres Projekts ausführen, um Style-Probleme abzufangen, die dem Konverter nicht bekannt sind.

Praktisches Beispiel

Stellen Sie sich vor, Sie haben eine API-Antwort, die die Feature-Flags Ihres Projekts auflistet, und möchten sie direkt in einen Block pyproject.toml einfügen. Das JSON sieht so aus: { "name": "beetools", "features": ["json", "toml"] }. Nach der Konvertierung lautet das TOML name = "beetools" und features = ["json", "toml"], und Sie können es ohne weitere Nachbearbeitung in [tool.beetools] ablegen. Arrays von Tabellen ([[items]]) stammen aus JSON-Arrays, deren Elemente Objekte mit identischen Schlüsseln sind; der Konverter erkennt die homogene Form und gibt die mehrzeilige Form automatisch aus. Wenn Sie stattdessen eine flache Ausgabe sehen, hat die Eingabe Typen gemischt -- teilen Sie die Quelle manuell auf und führen Sie es erneut aus.

Im Haus gebaut. JSON wird mit nativem JSON.parse gelesen; die Ausgabe wird von der BSD-3-Bibliothek smol-toml erzeugt, gebündelt in public/assets. Es wird nichts an einen Server gesendet.

Häufig gestellte Fragen

Unterstützt der Konverter verschachtelte Objekte?
Ja. Verschachtelte JSON-Objekte werden zu verschachtelten TOML-Tabellen. Der Konverter bewahrt die Tiefe, und sehr tiefe Verschachtelung erweitert sich entsprechend zu `[[section.sub]]`-Köpfen.
Wie sieht es mit Arrays von Grundwerten aus?
Arrays von Grundwerten (Zahlen, Zeichenketten, Booleans) werden zu TOML-Inline-Arrays. Arrays mit gemischten Typen werden vom zugrundeliegenden Parser abgelehnt, da TOML homogene Arrays verlangt.
Werden JSON-null-Werte bewahrt?
TOML hat kein null-Literal. Der Konverter lässt `null`-Werte weg und gibt eine Warnung aus; wenn Sie Abwesenheit festhalten müssen, wechseln Sie vor der Konvertierung zu einer leeren Zeichenkette oder einem Sentinel-Wert.
Warum fehlen in der Ausgabe die Kommentare des ursprünglichen JSON?
JSON unterstützt keine Kommentare. Wenn Sie Kommentare im TOML benötigen, fügen Sie sie nach der Konvertierung von Hand hinzu.
Ändert der Konverter die Reihenfolge der Schlüssel?
Nein. Standardmäßig werden Schlüssel in JSON-Reihenfolge ausgegeben. Aktivieren Sie die Sortieroption, wenn Sie ein stabiles, alphabetisches Layout zum Vergleichen wünschen.
Wird mein JSON irgendwohin gesendet?
Nein. Die Konvertierung erfolgt vollständig im Browser mit nativem JSON.parse und der gebündelten smol-toml-Bibliothek.