Quand le YAML doit devenir du JSON
Le YAML est la langue de la configuration : Kubernetes, Docker Compose, GitHub Actions, spécifications OpenAPI et d'innombrables réglages d'applications. Il est agréable à écrire, mais les erreurs d'indentation sont faciles, et beaucoup d'outils, de validateurs et d'API n'acceptent que le JSON.
Ce convertisseur analyse le YAML avec la bibliothèque yaml selon la spécification YAML 1.2, résout les ancres et les alias, puis écrit un JSON indenté. Si le fichier contient plusieurs documents séparés par ---, vous obtenez un tableau JSON avec un élément par document.
YAML ou JSON : comparaison rapide
| Caractéristique | YAML | JSON |
|---|---|---|
| Nom complet | YAML Ain't Markup Language | JavaScript Object Notation |
| Type | Données hiérarchiques | Données hiérarchiques |
| Création | 2001 | Début des années 2000 (RFC 4627 en 2006) |
| Créé par | Clark Evans, Ingy döt Net et Oren Ben-Kiki | Douglas Crockford ; aujourd'hui ECMA-404 et RFC 8259 |
| Structure | Dictionnaires et listes imbriqués par l'indentation | Objets et tableaux imbriqués |
| Commentaires | Oui, avec # | Non |
| Types de données | Chaînes, nombres, booléens, null, dates, listes, dictionnaires | Chaîne, nombre, booléen, null, objet, tableau |
| Idéal pour | Configuration de Kubernetes, pipelines CI et Docker Compose | API, applications web et réglages d'applis |
| Compatibilité | La plupart des langages via des bibliothèques | Tous les langages de programmation |
| Type MIME | application/yaml | application/json |
Comment convertir du YAML en JSON
Étape 1: Sélectionnez un fichier .yaml ou .yml
Déposez le fichier de configuration ou de spécification dans le convertisseur.
Étape 2: Gardez JSON comme sortie
JSON est présélectionné.
Étape 3: Convertissez
Le YAML est analysé ; les erreurs de syntaxe sont signalées par un message au lieu de produire un résultat cassé.
Étape 4: Téléchargez le JSON
Utilisez-le avec des validateurs, des API ou du code JavaScript.
Fonctions YAML prises en charge
Plusieurs documents
Les fichiers avec des séparateurs --- deviennent un tableau JSON.
Ancres et alias
Les références &ancre et *alias sont développées en valeurs complètes.
Types YAML 1.2
Les valeurs comme yes, no et on restent des chaînes, ce qui évite les pièges classiques du YAML 1.1.
.yml et .yaml
Les deux extensions sont reconnues.
Conversions YAML vers JSON courantes
OpenAPI et Swagger. Certains outils n'importent que la version JSON d'une spécification d'API.
Débogage Kubernetes. Inspectez des manifestes avec des outils JSON comme jq.
Validation de schéma. Les validateurs JSON Schema attendent généralement du JSON.
Configuration d'applications. Chargez des réglages dans des environnements sans analyseur YAML.
Ce qui se perd à la traduction
Le JSON n'a pas de commentaires : ceux du YAML disparaissent. Les ancres et alias sont développés, ce qui peut allonger le JSON si le YAML réutilisait de gros blocs. L'ordre des clés est conservé.
Les balises personnalisées comme !Ref ou !GetAtt, utilisées par AWS CloudFormation, ne sont pas du YAML standard et peuvent provoquer des avertissements ou être converties en valeurs simples. Convertissez les modèles CloudFormation avec les outils AWS si ces balises comptent.
YAML 1.2 ou 1.1
Les anciens analyseurs suivaient le YAML 1.1, où yes, no, on et off signifiaient vrai ou faux et où des valeurs comme 0755 étaient des nombres octaux. Ce convertisseur suit le YAML 1.2, où ces mots restent des chaînes sauf s'ils sont écrits true ou false. C'est plus sûr, mais le résultat peut différer de celui d'un ancien outil.
Les dates écrites sans guillemets restent des chaînes dans le JSON, ce qui évite les surprises de fuseau horaire.
- country: NO reste "NO" (le problème norvégien est évité).
- enabled: true devient true.
- mode: 0755 reste un nombre en YAML 1.2, soit 755.
Conseils pour le YAML vers JSON
- Indentez le YAML avec des espaces, jamais avec des tabulations.
- Mettez entre guillemets les chaînes contenant deux-points suivis d'un espace.
- Vérifiez les sorties multi-documents : c'est un tableau même si vous attendiez un objet.
- Reconvertissez avec JSON vers YAML après modification si besoin.
Questions sur la conversion YAML en JSON
Les fichiers à plusieurs documents sont-ils gérés ?
Oui. Chaque document séparé par --- devient un élément d'un tableau JSON.
Les commentaires sont-ils conservés ?
Non. Le JSON n'a pas de syntaxe de commentaire, ils sont donc supprimés.
Quelle version de YAML est utilisée ?
YAML 1.2, la spécification actuelle : yes et no restent des chaînes.
Que deviennent les ancres et les alias ?
Ils sont résolus et les valeurs référencées sont recopiées à leur place.
Pourquoi ma conversion a-t-elle échoué ?
Le plus souvent à cause d'une erreur d'indentation ou d'une tabulation. Le message d'erreur indique le problème.
Le fichier est-il envoyé ?
Non. L'analyse se fait dans votre navigateur.