Formatez, validez et convertissez TOML ↔ JSON dans le navigateur. Aucune donnée n'est envoyée à un serveur.
| Type | Exemple | Notes |
|---|---|---|
| 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 |
| Fonctionnalité | 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) est un format de fichier de configuration conçu pour être facile à lire grâce à une sémantique évidente. Il correspond sans ambiguïté à une table de hachage et est conçu comme alternative à YAML et JSON pour les fichiers de configuration. TOML est utilisé par Cargo de Rust, Poetry de Python et de nombreux autres outils.
Contrairement à JSON, TOML supporte les commentaires, les chaînes multi-lignes et a des types date/heure natifs. Contrairement à YAML, TOML a une syntaxe explicite et non ambiguë — pas de coercitions de type implicites surprenantes ni de pièges d'indentation. TOML est généralement préféré pour les fichiers de configuration tandis que JSON l'est pour les APIs d'échange de données.
Une table TOML est définie avec la syntaxe [table.name] et correspond à un objet imbriqué. Un tableau de tables utilise [[array.name]] (doubles crochets) et crée un tableau d'objets. Les tables inline utilisent la syntaxe {key = value} pour des représentations compactes. Les tables supportent un imbrication arbitraire pour la configuration hiérarchique.
TOML supporte : String (basique et littéral/brut), Integer (décimal, hex 0x, octal 0o, binaire 0b), Float (incluant inf et nan), Boolean (true/false), Offset Date-Time (RFC 3339), Local Date-Time, Local Date, Local Time, Array (types mixtes autorisés) et Table/Inline Table.