TOML ↔ JSON im Browser formatieren, validieren und konvertieren. Keine Daten werden an Server gesendet.
| Typ | Beispiel | Hinweise |
|---|---|---|
| String (basic) | name = "Alice" | Supports \n, \t, \uXXXX escapes |
| String (literal) | path = 'C:\Users\Alice' | No escape processing — use for regex, paths |
| Multi-line string | desc = \"\"\" Line 1 Line 2\"\"\"`` | Opening newline trimmed |
| Integer | count = 42 hex = 0xFF bin = 0b1010 | Underscores allowed: 1_000_000 |
| Float | pi = 3.14159 sci = 5e22 inf = inf | nan also valid |
| Boolean | debug = true verbose = false | Always lowercase |
| Offset Date-Time | created = 1979-05-27T07:32:00Z | RFC 3339 / ISO 8601 |
| Local Date | date = 2024-01-15 | No time, no timezone |
| Array | tags = ["rust", "config"] | Mixed types allowed; multi-line OK |
| Inline Table | point = {x = 1, y = 2} | Must be on a single line |
| Table | [server] host = 'localhost' | Maps to nested object |
| Array of Tables | [[users]] name = 'Alice' | Creates an array of objects |
| Funktion | TOML | JSON | YAML |
|---|---|---|---|
| Comments | ✓ | ✗ | ✓ |
| Trailing commas | N/A | ✗ | N/A |
| Native dates | ✓ | ✗ | ✓ |
| Multi-line strings | ✓ | ✗ (escape \n) | ✓ |
| Implicit type coercion | ✗ | ✗ | ✓ (risky) |
| Human readability | High | Medium | High |
| Machine readability | High | High | Medium |
| Use case | Config files | APIs / data exchange | Config / automation |
TOML (Tom's Obvious, Minimal Language) ist ein Konfigurationsdateiformat, das dank offensichtlicher Semantik leicht lesbar ist. Es bildet eindeutig auf eine Hash-Tabelle ab und ist als Alternative zu YAML und JSON für Konfigurationsdateien konzipiert. TOML wird von Rusts Cargo, Pythons Poetry und vielen anderen Tools verwendet.
Im Gegensatz zu JSON unterstützt TOML Kommentare, mehrzeilige Strings und hat native Datum/Uhrzeit-Typen. Im Gegensatz zu YAML hat TOML explizite, eindeutige Syntax — keine überraschenden impliziten Typzwänge oder Einrückungsfallen. TOML wird generell für Konfigurationsdateien bevorzugt, JSON für Datenaustausch-APIs.
Eine TOML-Tabelle wird mit [table.name]-Syntax definiert und bildet auf ein verschachteltes Objekt ab. Ein Array von Tabellen verwendet [[array.name]] (doppelte Klammern) und erstellt ein Array von Objekten. Inline-Tabellen verwenden {key = value}-Syntax für kompakte Darstellungen. Tabellen unterstützen beliebige Verschachtelung für hierarchische Konfiguration.
TOML unterstützt: String (einfach und literal/raw), Integer (dezimal, hex 0x, oktal 0o, binär 0b), Float (einschließlich inf und nan), Boolean (true/false), Offset Date-Time (RFC 3339), Local Date-Time, Local Date, Local Time, Array (gemischte Typen erlaubt) und Table/Inline Table.