Konvertiert TOML-Dokumente in JSON mit konfigurierbarer Einrückung und Kompaktmodus-Ausgabe.
Konvertiert TOML-Dokumente in JSON mit konfigurierbarer Einrückung und Kompaktmodus-Ausgabe. Konvertiert TOML-Dokumente in JSON mit konfigurierbarer Einrückung und Kompaktmodus-Ausgabe.
Ausgabe
Hintergrund
Warum Sie TOML als JSON mögen könnten
JSON ist die Lingua franca des Webs: jede API spricht es, jeder
Editor kann es hervorheben, und jede Sprache hat einen Parser in
ihrer Standardbibliothek. TOML ist hervorragend für von Menschen
bearbeitete Konfiguration, wird aber als Laufzeit-Datenaustauschformat
weniger universell unterstützt. Wenn Sie eine TOML-Konfiguration in
ein Tool speisen müssen, das nur JSON konsumiert (Web-Sandkästen,
Schema-Validatoren, Code-Generatoren usw.), rettet ein zuverlässiger
TOML-zu-JSON-Konverter den Tag.
Die Konvertierung ist weitgehend verlustfrei, weil beide Formate
ausdrucksstark genug sind, um dieselben Primitiven darzustellen. Die
wenigen TOML-spezifischen Typen (mehrzeilige Strings, Datumswerte)
werden zu gewöhnlichen Strings; die wenigen JSON-spezifischen Werte
(null) werden zum JSON-Literal null, das TOML kein natives
Äquivalent hat.
Wissenswerte Funktionen
Der Konverter bietet einen Schöndruck-Schalter (mit 2-/4-Leerzeichen-
Einrückung) und einen Kompaktmodus (eine Zeile). Für sehr große
Konfigurationsdateien ist die kompakte Ausgabe viel leichter in einen
curl-Request-Body einzufügen. Der Tausch-Button verschiebt die
JSON-Ausgabe zurück in das Eingabefeld, sodass Sie sie erneut
bearbeiten und wieder als TOML exportieren können.
Workflow-Tipps
Validieren Sie nach der Konvertierung das JSON mit einem
Schema-Validator (ajv, jsonschema), bevor Sie es an ein
nachgelagertes Tool weitergeben. Der TOML-Parser ist strikt: Er
weist unquotierte Skalare zurück, die mit Ziffern beginnen,
Inline-Tabellen mit Kommentaren und andere häufige Fehler. Nutzen
Sie die Fehlermeldungen, um das Quelldokument zu korrigieren,
nicht das JSON.
Praktisches Beispiel
Angenommen, Sie pflegen ein pyproject.toml-Snippet, das die
Laufzeitkonfiguration Ihres Tools unter [tool.beetools] auflistet.
Um dieselbe Konfiguration in eine JavaScript-Build-Pipeline zu
speisen, die nur JSON akzeptiert, lassen Sie das Snippet durch
diesen Konverter laufen. Die Ausgabe bewahrt die Tabellenhierarchie,
sodass ein verschachtelter Block wie [tool.beetools.cache] zu
{ "tool": { "beetools": { "cache": { ... } } } } wird. Punktierte
Schlüssel fallen auf dem Weg nach außen in verschachtelte Objekte
zusammen und spiegeln so, wie der TOML-Parser sie ursprünglich
aufgebaut hat. Sobald Sie das JSON haben, validieren Sie es mit
ajv oder jsonschema, bevor Sie es nachgelagert weitergeben --
der Konverter übersetzt nur die Syntax.
Häufig gestellte Fragen
Unterstützt der Konverter TOML-1.0-Funktionen?
Ja. Der Konverter parst TOML 1.0, einschließlich Arrays von Tabellen (`[[name]]`), Inline-Tabellen (`{ key = "value" }`) und punktierten Schlüsseln (`a.b.c`).
Wie werden TOML-Datumswerte in JSON ausgegeben?
Daten ohne Zeitanteil werden zu JSON-Strings in der Form `YYYY-MM-DD`. Datumszeiten werden zu `YYYY-MM-DDTHH:MM:SS[.fraction][Z|+offset]`. Der empfangende JSON-Consumer kann sie mit der Datumsbibliothek seiner Sprache parsen.
Was ist mit mehrzeiligen TOML-Strings?
Sie werden als gewöhnliche JSON-Strings mit eingebetteten Zeilenumbruchzeichen ausgegeben. JSON kann den exakten Literalstil nicht bewahren, aber der geparste Wert ist identisch.
Kann der Konverter punktierte Schlüssel verarbeiten?
Ja. `a.b.c = 1` wird zu `{ "a": { "b": { "c": 1 } } }`. Der Konverter expandiert jeden punktierten Schlüssel in verschachtelte Objekte.
Lehnt der Konverter ungültiges TOML ab?
Ja. Der Parser wirft einen Fehler mit einem Zeilen-/Spaltenzeiger auf das erste ungültige Token. Korrigieren Sie das Quell-TOML und versuchen Sie es erneut.
Wird mein TOML hochgeladen?
Nein. Das Parsen erfolgt lokal über die eingebundene smol-toml-Bibliothek; nichts verlässt den Browser.