Convertisseur JSON ↔ YAML Bidirectionnel
Collez du JSON à gauche et obtenez du YAML à droite, ou l'inverse. Les deux panneaux sont éditables en temps réel et se synchronisent automatiquement. Inclut les boutons Formater JSON, Échanger et Copier. La conversion s'effectue entièrement dans votre navigateur sans envoyer de données à aucun serveur.
Fonctionnement
Historique et cas d'usage de JSON et YAML
JSON (JavaScript Object Notation) a été introduit par Douglas Crockford au début des années 2000 comme un format léger d'échange de données dérivé de la syntaxe des objets JavaScript. Sa grammaire stricte — guillemets doubles, pas de virgules finales, pas de commentaires — le rend sans ambiguïté et trivial à analyser dans n'importe quel langage. JSON a rapidement supplanté XML dans les API web grâce à sa concision et sa compatibilité native avec JavaScript.
YAML (YAML Ain't Markup Language) a été créé en 2001 par Clark Evans et Ingy döt Net avec pour objectif d'être plus convivial pour les humains. YAML 1.2 est techniquement un surensemble de JSON — tout document JSON valide est du YAML valide — mais YAML ajoute une structure basée sur l'indentation, des commentaires, des chaînes multilignes et une inférence de types, le rendant plus confortable pour les fichiers de configuration édités manuellement.
Quand utiliser JSON plutôt que YAML
JSON excelle lorsque les machines lisent les données : API REST, enregistrements de bases de données, communication inter-services et localStorage. Sa simplicité signifie que pratiquement tous les langages ont un analyseur JSON intégré, et les règles de syntaxe strictes éliminent toute ambiguïté. Si le consommateur principal est du code, JSON est presque toujours le bon choix.
YAML brille dans les fichiers de configuration édités par des humains : Docker Compose, manifestes Kubernetes, workflows GitHub Actions et playbooks Ansible utilisent YAML par défaut. Les commentaires permettent une documentation en ligne, les chaînes multilignes maintiennent les valeurs longues lisibles, et l'absence d'accolades rend les configurations hiérarchiques moins encombrées.
Pièges courants lors de la conversion
La sensibilité à l'indentation de YAML est la source d'erreurs la plus fréquente. Contrairement aux accolades de JSON, un espace mal placé change la structure. YAML effectue également une inférence de types automatique : un yes non encadré devient le booléen true, et 0755 peut être interprété comme un nombre octal. Ce convertisseur met entre guillemets les chaînes qui pourraient être mal interprétées pour préserver le type d'origine.
Les caractères spéciaux posent un autre défi. Les deux-points suivis d'un espace (: ), les dièses (#) et les caractères spéciaux en début de chaîne doivent être mis entre guillemets en YAML. Ce convertisseur gère ces cas automatiquement, mais les fonctionnalités avancées de YAML comme les ancres, les alias et les scalaires de bloc multilignes sont hors de portée et afficheront un message d'erreur clair.
Questions fréquentes
›YAML est-il un surensemble de JSON ?
Oui. YAML 1.2 est un surensemble strict de JSON, ce qui signifie que tout document JSON valide est du YAML valide. L'inverse n'est pas toujours vrai : les fonctionnalités YAML comme les commentaires, les ancres et les scalaires de bloc n'ont pas d'équivalent en JSON.
›À quoi sert principalement YAML ?
YAML est surtout utilisé dans les fichiers de configuration : Docker Compose (docker-compose.yml), manifestes Kubernetes, GitHub Actions (.github/workflows), playbooks Ansible. Son style lisible convient aux fichiers que les développeurs éditent manuellement.
›JSON ou YAML pour les fichiers de configuration ?
YAML l'emporte généralement pour la configuration éditée par des humains car il prend en charge les commentaires et est moins verbeux. JSON est préférable pour la configuration générée ou consommée par des machines. De nombreux outils (ESLint, Prettier, tsconfig) acceptent les deux.
›Comment YAML gère-t-il les caractères spéciaux ?
Les chaînes contenant des deux-points suivis d'un espace, des caractères spéciaux en début ({, [, #, etc.) ou des valeurs ressemblant à des booléens ou des nombres doivent être mises entre guillemets. Les guillemets simples désactivent tout échappement ; les guillemets doubles utilisent des échappements par barre oblique inversée similaires à JSON. Ce convertisseur ajoute automatiquement des guillemets où nécessaire.
›La conversion JSON vers YAML est-elle sans perte ?
Pour les types pris en charge par JSON (chaînes, nombres, booléens, null, objets, tableaux), la conversion est sans perte. Le seul problème potentiel est l'inférence de types de YAML sur les valeurs sans guillemets, c'est pourquoi ce convertisseur met entre guillemets les chaînes qui pourraient être mal interprétées.
›Comment convertir YAML en JSON en Python ?
Utilisez la bibliothèque PyYAML : import yaml, json; data = yaml.safe_load(open('fichier.yaml')); print(json.dumps(data, indent=2)). La fonction safe_load évite d'exécuter des balises YAML arbitraires, ce qui est important pour la sécurité.
›Comment convertir JSON en YAML en Node.js ?
Avec le paquet js-yaml : const yaml = require('js-yaml'); const obj = JSON.parse(fs.readFileSync('fichier.json')); console.log(yaml.dump(obj)). Pour une approche sans dépendances, écrivez le sérialiseur YAML manuellement, ce que fait ce convertisseur.
›Quelles fonctionnalités YAML ne sont pas prises en charge ?
Ce convertisseur omet intentionnellement les fonctionnalités avancées de YAML : ancres (&ancre), alias (*alias), balises de type (!!int, !!str), scalaires de bloc multilignes (| et >), séparateurs de documents (---). Ils couvrent moins de 5% du YAML réel. Pour ces cas, utilisez une bibliothèque YAML complète.
Outils similaires
Dernière mise à jour: