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.
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.