Ces deux formats sont lisibles, mais YAML dépend de l'indentation et de conversions implicites, tandis que TOML utilise des types et sections explicites. Choisissez selon l'outil et la sécurité de l'édition.
YAML représente des mappings, séquences et scalaires. Dans le style bloc courant, l'indentation définit la hiérarchie. Kubernetes et Docker Compose l'utilisent pour la configuration. Indentez avec des espaces, pas des tabulations ; deux espaces par niveau sont une convention, tandis que la structure détermine la profondeur.
Dans key: value, le deux-points suivi d'un espace sépare clé et valeur. key:value peut être lu comme une chaîne. Utilisez des guillemets pour éviter une interprétation spéciale des caractères, nombres ou booléens.
YAML 1.1 traite yes, no, on et off comme booléens ; YAML 1.2 et les parseurs peuvent différer. --- sépare les documents, par exemple plusieurs ressources Kubernetes. Vérifiez avec le formateur YAML, puis avec le système cible.
Des tabulations invisibles et des éléments mal alignés peuvent causer une erreur ou changer la structure. Activez l'affichage des espaces dans l'éditeur. Des profondeurs différentes ne sont pas interdites en soi : la hiérarchie voulue est déterminante.
Les types implicites dépendent de la version et du schéma. Attention aux zéros initiaux : 0644 peut être interprété en octal selon YAML 1.1. Citez les identifiants et versions qui doivent rester du texte ; ne supposez pas qu'un autre parseur réagira de même.
Les ancres &name et alias *name réutilisent des valeurs, avec un support variable selon la cible. Contrôlez le résultat développé via YAML vers JSON. JSON ne garde ni commentaires ni syntaxe d'alias ; une partie de la présentation d'origine disparaît.
TOML a été conçu pour les configurations éditées par des humains. Il utilise des paires clé-valeur et des sections comme [package], [dependencies] et [dev-dependencies]. Cargo et pyproject.toml en sont des exemples ; la PEP 518 a retenu TOML en 2016 pour les dépendances de construction Python.
[[table]] commence un élément d'un tableau de tables. Chaînes, entiers, flottants, booléens, dates, heures, tableaux et tables en ligne ont une syntaxe définie. port = 8080 est un nombre ; port = "8080" est du texte. TOML n'a pas de type null.
Les commentaires commencent par # hors des chaînes. Vérifiez version et fonctionnalités du parseur, notamment chaînes multilignes et dates. Le formateur TOML facilite le contrôle, mais le programme cible doit aussi accepter le fichier.
Utilisez YAML lorsque la plateforme l'exige, comme Kubernetes, Helm ou Ansible. Commentaires et alias sont utiles mais demandent une attention aux types et à la structure. TOML convient aux configurations organisées souvent modifiées par des personnes.
JSON offre des règles strictes et de nombreux parseurs pour les API ou package.json. Le standard ne permet pas les commentaires ; une application qui accepte du JSON avec commentaires ne change pas la spécification.
JSON vers YAML, JSON vers TOML, YAML vers JSON et TOML vers JSON convertissent localement. Contrôlez null, dates, nombres et tableaux imbriqués. Commentaires, formatage et informations particulières de type ne sont pas automatiquement préservés.
La cause la plus fréquente est l'indentation par tabulations plutôt que par espaces. Certains éditeurs insèrent des tabulations silencieusement. Passez votre YAML dans notre Formateur YAML pour normaliser les espaces avant de valider.
Oui. Un # interprété comme commentaire hors des chaînes fait ignorer la fin de ligne. Dans une chaîne, # fait partie de la valeur et doit être conservé.
TOML 1.0, publié en 2021, a précisé la syntaxe et les détails des chaînes multilignes, clés et dates. Vérifiez la version et les fonctions du parseur, puis validez le fichier dans le programme cible.
Utilisez notre Convertisseur YAML vers JSON. Collez votre manifeste et cliquez sur Convertir. La sortie est un JSON valide que kubectl et la plupart des clients Kubernetes acceptent.
La communauté du packaging Python a choisi TOML parce qu'il prend en charge les commentaires (contrairement à JSON), est non ambigu (contrairement aux types implicites de YAML) et est convivial. PEP 518 (2016) a spécifié TOML à cette fin.