Beide Formate sind gut lesbar, aber YAML hängt von Einrückung und impliziter Typumwandlung ab, während TOML explizite Typen und Sektionen nutzt. Entscheiden Sie nach Tool und Bearbeitungssicherheit.
YAML beschreibt Mappings, Sequenzen und skalare Werte; im üblichen Blockstil entsteht die Hierarchie durch Einrückung. Kubernetes und Docker Compose nutzen es für Konfigurationen. Verwenden Sie Leerzeichen für Einrückungen und keine Tabs. Zwei Leerzeichen pro Ebene sind eine verbreitete Konvention, aber die Struktur entscheidet über die benötigte Tiefe.
Bei key: value trennt der Doppelpunkt mit folgendem Leerzeichen Schlüssel und Wert. key:value kann stattdessen als Zeichenfolge gelesen werden. Zitieren Sie Werte, wenn Sonderzeichen oder die Interpretation als Zahl beziehungsweise Boolean unerwünscht sind.
YAML 1.1 behandelt unter anderem yes, no, on und off als Booleans; YAML 1.2 und konkrete Parser können sich anders verhalten. --- trennt Dokumente, etwa mehrere Kubernetes-Ressourcen. Prüfen Sie Manifeste im YAML-Formatter und anschließend mit dem Zielsystem.
Unsichtbare Tabs in Einrückungen und falsch eingerückte Geschwister können Syntaxfehler oder eine andere Struktur erzeugen. Aktivieren Sie im Editor die Anzeige von Leerraum. Unterschiedliche Einrückungstiefen sind nicht pauschal verboten; entscheidend ist die beabsichtigte Hierarchie.
Implizite Typen hängen von YAML-Version und Schema ab. Führende Nullen sind riskant: Unter YAML-1.1-Regeln kann 0644 oktal gelesen werden. Zitieren Sie Kennungen und Versionsnummern, die Zeichenfolgen bleiben sollen. Verlassen Sie sich nicht auf das Verhalten eines anderen Parsers.
Anker &name und Aliase *name können Werte wiederverwenden, unterstützen aber nicht jedes Zielsystem gleich. Kontrollieren Sie das expandierte Ergebnis mit YAML zu JSON. JSON hat keine Kommentare oder Alias-Syntax; bei der Umwandlung geht daher ein Teil der ursprünglichen Darstellung verloren.
TOML wurde für von Menschen bearbeitete Konfigurationen entwickelt. Es nutzt Schlüssel-Wert-Paare und Sektionen wie [package], [dependencies] oder [dev-dependencies]. Rusts Cargo und Pythons pyproject.toml sind verbreitete Beispiele; PEP 518 legte TOML 2016 für Python-Buildanforderungen fest.
[[table]] beginnt einen Eintrag in einem Array von Tabellen. Strings, Integer, Fließkommazahlen, Booleans, Datums- und Zeitwerte, Arrays und Inline-Tabellen haben definierte Schreibweisen. port = 8080 ist eine Zahl; port = "8080" ist Text. TOML besitzt keinen null-Typ.
Kommentare beginnen außerhalb von Zeichenfolgen mit #. Prüfen Sie Version und unterstützte Funktionen des Parsers, insbesondere bei mehrzeiligen Strings und Datumswerten. Der TOML-Formatter erleichtert die Prüfung; die endgültige Konfiguration muss auch vom Zielprogramm akzeptiert werden.
Verwenden Sie YAML, wenn die Plattform es erwartet, etwa Kubernetes, Helm oder Ansible. Kommentare und Aliase können dabei nützlich sein, verlangen aber genaue Typ- und Strukturkontrolle. TOML passt zu klar gegliederten Konfigurationen, die regelmäßig von Menschen bearbeitet werden.
JSON bietet breite Parser-Unterstützung und strenge Regeln, etwa für API-Daten oder package.json. Standard-JSON unterstützt keine Kommentare; dass ein bestimmtes Werkzeug JSON mit Kommentaren akzeptiert, ändert die Spezifikation nicht.
JSON zu YAML, JSON zu TOML, YAML zu JSON und TOML zu JSON führen die Konvertierung lokal durch. Prüfen Sie null, Datumswerte, Zahlen und verschachtelte Arrays vor der Übernahme. Kommentare, Formatierung und jede besondere Typinformation bleiben nicht automatisch erhalten.
Die häufigste Ursache ist die Einrückung mit Tabs statt Leerzeichen. Manche Editoren fügen Tabs unbemerkt ein. Lassen Sie Ihr YAML vor dem Committen durch unseren YAML Formatter laufen, um den Leerraum zu normalisieren.
Ja. Ein außerhalb von Zeichenfolgen als Kommentar interpretiertes # lässt den Rest der Zeile ignorieren. Innerhalb einer Zeichenfolge gehört # zum Wert und muss erhalten bleiben.
TOML 1.0 erschien 2021 und präzisierte Syntax sowie Details zu mehrzeiligen Strings, Schlüsseln und Datumswerten. Prüfen Sie die unterstützte Parser-Version und validieren Sie die Datei im Zielprogramm.
Verwenden Sie unseren YAML-zu-JSON-Konverter. Fügen Sie Ihr Manifest ein und klicken Sie auf Konvertieren. Die Ausgabe ist gültiges JSON, das kubectl und die meisten Kubernetes-Clients akzeptieren.
Die Python-Packaging-Community wählte TOML, weil es Kommentare unterstützt (anders als JSON), eindeutig ist (anders als die impliziten Typen von YAML) und benutzerfreundlich ist. PEP 518 (2016) legte TOML für diesen Zweck fest.