YAML et JSON : deux visages du même concept
YAML et JSON sont deux formats de sérialisation de données largement utilisés en développement. Si vous avez travaillé avec Docker Compose, Kubernetes, GitHub Actions ou Ansible, vous avez écrit du YAML. Si vous avez développé une API web ou travaillé avec JavaScript, vous avez écrit du JSON. Les deux se recoupent – tout fichier JSON valide est aussi du YAML valide.
Pourtant, ils ont des forces distinctes, et les projets ont régulièrement besoin de passer de l'un à l'autre.
Différences clés
YAML est amélioré pour les humains. Il utilise l'indentation plutôt que les accolades, supporte les commentaires, permet les chaînes multilignes naturellement, et ressemble davantage à un fichier de config qu'à du code. C'est pourquoi il est populaire pour la configuration : fichiers Docker Compose, pipelines CI, playbooks Ansible, charts Helm.
JSON est amélioré pour les machines. Il est strict, sans ambiguïté, et chaque langage de programmation dispose d'un parser JSON dans sa bibliothèque standard. C'est la lingua franca des API web et de l'échange de données.
| YAML | JSON | |
|---|---|---|
| Commentaires | Oui (`#`) | Non |
| Guillemets obligatoires | Non | Oui |
| Chaînes multilignes | Natif | Nécessite `\n` |
| Virgule finale | Autorisée | Interdite |
| Strictness | Souple | Strict |
| Support outillage | Bon | Universel |
Scénarios de conversion courants
YAML → JSON : Vous avez un fichier de config YAML et devez transmettre ses valeurs à une API JSON, valider sa structure, ou l'importer dans un outil qui n'accepte que du JSON.
JSON → YAML : Vous avez reçu un payload JSON et souhaitez le stocker comme fichier de config plus lisible, ou migrer d'un outil JSON vers un outil YAML.
Pièges à éviter
Typage implicite YAML
YAML pratique la coercition de type implicite. La chaîne yes en YAML devient le booléen true en JSON. 1.0 devient un flottant. null, ~ et les valeurs vides deviennent tous null en JSON. Si vous avez besoin que vos valeurs restent des chaînes, entourez-les de guillemets dans YAML.
Erreurs d'indentation
YAML est sensible à l'indentation. Un espace en trop peut modifier la structure du document. Si votre outil de conversion génère une erreur, la cause la plus fréquente est une indentation incohérente (mélange tabulations/espaces interdit).
Documents multiples
YAML supporte plusieurs documents dans un même fichier, séparés par ---. La plupart des outils JSON ne gèrent qu'un seul document à la fois.
Convertir dans votre navigateur
Vous n'avez pas besoin d'installer un outil en ligne de commande. Le Convertisseur YAML vers JSON de ce site effectue la conversion entièrement côté client – collez votre YAML, obtenez du JSON immédiatement (ou l'inverse). Vos données ne quittent jamais votre navigateur.
En résumé
YAML excelle pour la configuration écrite par des humains ; JSON excelle pour l'échange de données machine à machine. Les convertir est trivial une fois qu'on comprend leur équivalence structurelle – et connaître les pièges (typage implicite, indentation, documents multiples) évite des bugs difficiles à diagnostiquer.