JSON vers YAML
Convertisseur JSON vers YAML gratuit en ligne. Transformez votre JSON en configuration YAML 1.2 conforme en un clic, avec indentation personnalisable et réparation automatique des erreurs JSON. Générez des manifestes Kubernetes, Docker Compose, GitHub Actions et autres fichiers de configuration YAML.
Recommandations connexes
Qu'est-ce que YAML ? Pourquoi convertir du JSON en YAML ?
YAML (YAML Ain't Markup Language, c'est-à-dire « YAML n'est pas un langage de balisage ») est un format de sérialisation de données conçu pour être lisible et facile à écrire par des humains. YAML 1.2 est la version stable actuelle (yaml.org/spec/1.2.2), proposée par Clark Evans en 2001, aujourd'hui largement utilisée pour la configuration de pratiquement tous les outils DevOps : Kubernetes, Docker Compose, GitHub Actions, Ansible, CircleCI, Prometheus, etc. La philosophie de YAML privilégie la lisibilité à la concision : il sacrifie la syntaxe compacte du JSON au profit d'une structure à indentation et commentaires plus agréable à éditer.
JSON et YAML sont des sur-ensembles l'un de l'autre (JSON est un sous-ensemble de YAML) : convertir du JSON en YAML est techniquement un simple reformatage syntaxique, mais la valeur pratique est considérable : ①lisibilité accrue — YAML utilise l'indentation au lieu des accolades et virgules, et les guillemets autour des clés peuvent être omis ; ②prise en charge des commentaires — YAML supporte les commentaires # alors que le standard JSON ne les supporte pas ; ③support multi-document — YAML permet plusieurs documents dans un même fichier via le séparateur ---, Kubernetes peut ainsi regrouper Deployment+Service+ConfigMap dans un seul .yaml ; ④reconnaissance automatique des types — YAML identifie nombres, booléens et null sans guillemets, pour des fichiers de configuration plus propres.
YAML possède trois structures de données de base : ①scalaires (scalar) — chaînes, nombres, booléens, null, etc. ; ②séquences (sequence) — équivalent des tableaux JSON, chaque élément commence par - ; ③mappings (mapping) — équivalent des objets JSON, chaque paire est key: value. YAML propose aussi des structures avancées : ancres (&anchor) et références (*anchor) pour réutiliser des blocs ; style bloc (| conserve les sauts de ligne) et style plié (> sauts de ligne → espaces) pour les chaînes multilignes ; balises explicites (!!str, !!int) pour forcer un type. Ces fonctionnalités rendent YAML plus puissant que JSON pour les configurations complexes.
Les motifs courants de conversion JSON vers YAML sont : ①un projet doit être déployé sur Kubernetes mais la configuration existante est en JSON ; ②l'équipe décide d'unifier toute la configuration en YAML ; ③intégration avec une API tierce nécessitant des payloads YAML (OpenAPI, Swagger) ; ④configurations JSON exportées par une passerelle API ou une plateforme CI/CD à rendre lisibles en YAML ; ⑤transformation de données mock JSON en YAML pour des fixtures de test. Cet outil couvre tous ces scénarios.
Le processus de conversion est essentiellement un remappage de structures de données : JSON.parse() transforme le texte en objet JavaScript (AST), et la fonction dump() de js-yaml parcourt récursivement chaque nœud — chaînes, nombres, booléens et null sont émis tels quels, les tableaux deviennent des listes -, les objets imbriqués deviennent des niveaux indentés. Tout le processus est purement local, sans dépendance externe (hors la bibliothèque js-yaml), et le résultat est 100 % compatible avec tous les parseurs YAML standard.
Cas d'utilisation
- Préparation de manifestes Kubernetes : convertir en YAML standard les configurations JSON générées par des templates Helm ou des outils CI/CD pour vos ressources Deployment/Service
- Configuration Docker Compose : transformer les JSON exportés par des outils docker-compose.json ou des plateformes de conteneurisation en docker-compose.yml lisible
- Pipelines GitHub Actions / GitLab CI : convertir les configurations JSON issues de scripts d'automatisation ou de générateurs en fichiers YAML de pipeline
- Rédaction de playbooks Ansible : convertir des JSON d'orchestration de tâches au format YAML attendu par Ansible pour faciliter la revue de code en équipe
- Unification des configurations microservices : migrer les configurations JSON dispersées dans les microservices vers un dépôt YAML unifié, avec versioning et audit
- Génération YAML depuis Swagger/OpenAPI : convertir les JSON Schema exportés par les outils API en spécifications YAML conformes à OpenAPI
- Apprentissage de la syntaxe YAML : disposer d'une structure JSON existante et vouloir voir intuitivement comment YAML représente objets imbriqués, tableaux et valeurs spéciales
- Comparaison et conversion de formats : basculer rapidement entre JSON et YAML pour comparer et choisir le format de configuration le mieux adapté à votre projet
Comment utiliser
- Collez votre contenu JSON dans l'éditeur de gauche, ou cliquez sur le bouton d'import pour choisir un fichier .json / .txt, ou cliquez sur « Exemple » pour charger un échantillon prédéfini
- L'outil convertit automatiquement en temps réel selon la spécification YAML 1.2, affiche le résultat à droite, et permet de basculer l'indentation 2/4 via le menu déroulant
- Si le JSON contient des erreurs de syntaxe (virgules finales, apostrophes, commentaires), un bouton « Réparer JSON » apparaît en bas : cliquez pour correction automatique
- Pour l'échappement Unicode ou de chaînes, utilisez les boutons « Chinois ↔ Unicode » et « Échapper / Déséchapper » de la barre d'outils inférieure
- Une fois le résultat satisfaisant, cliquez sur « Copier » pour copier le contenu YAML, ou sur « Télécharger » pour l'enregistrer en fichier output.yaml prêt à l'emploi
Fonctionnalités
- Sortie conforme à YAML 1.2 : respecte la spécification officielle YAML 1.2, directement compatible avec Kubernetes, Docker Compose, GitHub Actions, Ansible et les principaux outils
- Indentation personnalisable : choisissez entre 2 et 4 espaces pour correspondre au style de votre projet (YAML recommande officiellement 2 espaces)
- Réparation JSON intelligente : moteur tryFixJSON intégré qui détecte et corrige automatiquement les erreurs courantes (virgules finales, apostrophes, commentaires) avant la conversion
- Conversion Unicode bidirectionnelle : convertissez en un clic les caractères chinois en séquences d'échappement \uXXXX, ou inversement, pour l'internationalisation
- Échappement / déséchappement de chaînes : ajoutez ou retirez en un clic les antislashs d'échappement pour guillemets, barres obliques inverses et sauts de ligne dans le JSON
- Formatage et minification JSON : la zone de saisie gauche permet de formater le JSON avec indentation ou de le compresser en une seule ligne
- Édition bidirectionnelle en temps réel : collez votre JSON à gauche et visualisez instantanément le YAML à droite, sans cliquer sur un bouton
- Import et téléchargement de fichiers : prise en charge des fichiers .json/.txt, puis téléchargement en un clic au format config.yaml ou output.yaml
- Raccourcis clavier : Shift+Cmd/Ctrl+F formater, C compresser, U Unicode, Z annuler, / échapper, . déséchapper, O ouvrir, D télécharger, K effacer
- Panneaux redimensionnables et historique : ajustez la largeur des panneaux gauche/droite par glisser-déposer, avec un historique local des 200 dernières conversions
- Bascule vers le formatage JSON : après conversion, accédez directement à l'outil de formatage JSON pour embellir, valider ou compresser les données source
- Traitement 100 % local en frontend : toutes les opérations de parsing, conversion et échappement s'exécutent dans le navigateur, aucun envoi vers un serveur
FAQ
Comment convertir du JSON au format YAML ?
Collez votre contenu JSON dans l'éditeur de gauche, l'outil le convertira automatiquement au format YAML 1.2 lisible : les paires clé-valeur deviennent key: value, les objets imbriqués sont représentés par l'indentation et les tableaux deviennent des listes en - item. Une fois la conversion terminée, copiez ou téléchargez le résultat en fichier .yaml. Si le JSON contient des erreurs de syntaxe (virgules finales, apostrophes, commentaires), l'outil tentera automatiquement de les réparer avant la conversion.
Quels usages pour YAML et JSON respectivement ?
YAML convient mieux aux configurations lisibles par l'humain — manifestes Kubernetes, Docker Compose, GitHub Actions, playbooks Ansible, pipelines CI/CD. JSON convient mieux au parsing machine et à l'échange de données — requêtes et réponses d'API REST, communication entre microservices, transfert frontend/backend. Règle simple : YAML pour écrire la configuration, JSON pour transmettre les données. Cet outil supporte aussi la conversion inverse YAML vers JSON.
Faut-il une indentation de 2 ou 4 espaces après conversion ?
YAML recommande officiellement 2 espaces (cohérent avec le style Python), style par défaut de Kubernetes, Docker Compose et GitHub Actions. Certains projets (anciens Ansible, style interne Google) utilisent 4 espaces. Cet outil permet de basculer librement entre 2 et 4 espaces : cliquez sur le menu déroulant en haut à droite de la zone de sortie pour changer instantanément l'indentation sans reconvertir.
Le YAML généré est-il directement utilisable avec Kubernetes ?
Oui. Cet outil respecte strictement la spécification officielle YAML 1.2, et la sortie est conforme au parseur YAML de Kubernetes (kubectl apply). Le YAML généré peut être enregistré directement en deployment.yaml, service.yaml, puis appliqué via kubectl apply -f. Attention : YAML est très sensible à l'indentation, ne ajoutez pas d'espaces supplémentaires et n'utilisez pas de tabulations lors du copier-coller.
Supportez-vous le YAML multi-document (séparé par ---) ?
La version actuelle est principalement conçue pour la conversion JSON → YAML mono-document. Si votre JSON est un tableau de plusieurs objets indépendants, la sortie sera sous forme de liste. Pour obtenir un YAML multi-document (chaque objet précédé de ---), ajoutez manuellement le séparateur --- devant chaque objet après conversion, ou utilisez l'outil de formatage YAML du site pour un traitement ultérieur.
Les caractères chinois ou spéciaux dans le JSON sont-ils mal codés ?
Non. Cet outil supporte pleinement l'encodage UTF-8, incluant le chinois, le japonais, le coréen, les emojis et tous les caractères Unicode. Si vous devez convertir le chinois en séquence \uXXXX (par exemple pour intégrer dans un littéral JavaScript), utilisez le bouton « Chinois → Unicode » en bas de l'outil. La conversion inverse se fait avec « Unicode → Chinois ».
Comment gérer les guillemets et sauts de ligne dans les chaînes JSON ?
YAML propose plusieurs syntaxes de chaînes : ① sans guillemets (pour chaînes simples sans caractères spéciaux) ; ② entre guillemets doubles (supporte , et autres échappements) ; ③ entre guillemets simples (littéral, pas d'échappement) ; ④ bloc avec | (conserve les sauts de ligne) ; ⑤ plié avec > (sauts de ligne → espaces). L'outil produit par défaut des guillemets doubles ; si la chaîne JSON contient des sauts de ligne, YAML les échappera automatiquement en \n. Les boutons « Échapper / Déséchapper » en bas gèrent les cas particuliers.
Toutes les valeurs sont-elles devenues des chaînes après conversion ?
Par défaut, l'outil détecte intelligemment et préserve les types d'origine du JSON : les nombres restent des nombres YAML (sans guillemets), les booléens deviennent true/false, null devient null ou ~. Si vous souhaitez que toutes les valeurs soient des chaînes (certains systèmes l'exigent), ajoutez manuellement les guillemets après conversion, ou enveloppez toutes les valeurs dans des chaînes côté JSON avant la conversion.
La conversion se fait-elle dans le navigateur ? Mes fichiers sont-ils envoyés ?
Non. Tout le parsing JSON, la génération YAML, l'échappement de chaînes, la conversion Unicode et la réparation JSON s'exécutent localement dans le moteur JavaScript de votre navigateur, sans aucun envoi réseau, même hors ligne. Vous pouvez convertir en toute confiance des JSON contenant des mots de passe, des clés API ou des secrets Kubernetes.
Dépannage
Erreur JSON « Unexpected token », que faire ?
C'est une erreur de syntaxe JSON. Causes courantes : ①virgule finale en trop (trailing comma), comme {"a":1,} ; ②apostrophes au lieu de guillemets doubles, comme {'a':1} ; ③nom de clé sans guillemets doubles, comme {a:1} ; ④commentaires // ou /* */. Le bouton « Réparer JSON » en bas de l'outil tente automatiquement de补r les virgules finales, d'ajouter les guillemets et de supprimer les commentaires. Reconvertissez après réparation.
kubectl apply renvoie « yaml: invalid character » ?
C'est généralement une erreur d'indentation. YAML exige des espaces, et un mélange avec des tabulations provoque l'échec du parsing. Vérifiez : ①que toutes les indentations sont des espaces (pas de tabulation) ; ②que le nombre d'espaces est cohérent au même niveau (2 ou 4) ; ③que l'indentation est alignée sur les niveaux d'imbrication. L'outil produit une indentation en espaces purs, sans tabulation, mais un copier-coller manuel peut en introduire.
Les sauts de ligne YAML apparaissent comme \n, que faire ?
Par défaut, les sauts de ligne (\n) du JSON sont échappés en \n lors de la conversion YAML. Pour conserver les vrais sauts de ligne (par exemple pour les commandes multilignes de Docker Compose ou les chaînes de configuration multi-lignes), passez manuellement au style bloc YAML avec | : description: |\n première ligne\n deuxième ligne. Vous pouvez aussi utiliser le bouton « Déséchapper » de l'outil pour transformer les \n du JSON en vrais sauts de ligne avant la conversion.
Les valeurs null YAML sont devenues le symbole ~ ?
YAML utilise ~ ou null pour représenter une valeur vide, les deux étant équivalents. Si votre outil ne reconnaît pas ~, remplacez-le manuellement par null. Vous pouvez aussi configurer l'outil pour que null soit toujours émis explicitement au lieu de ~. Notez que YAML 1.1 interprétait NO/On/Off comme booléens false (problème de la Norvège) ; YAML 1.2 corrige cela et notre sortie est conforme à 1.2.
Les caractères chinois apparaissent comme \uXXXX dans le YAML ?
Par défaut, l'outil produit du chinois en UTF-8 natif (pas d'échappement). Si vous voyez \uXXXX, c'est parce que : ①le JSON d'origine contenait déjà ces séquences d'échappement ; ②vous avez cliqué sur le bouton « Chinois → Unicode ». Utilisez le bouton « Unicode → Chinois » pour la conversion inverse, ou remplacez \uXXXX par les vrais caractères chinois côté JSON source.
Le navigateur rame avec un gros fichier, que faire ?
L'outil est optimisé pour la conversion en temps réel (debounce 500 ms), mais les très gros fichiers (> 1 Mo, centaines de milliers de lignes) peuvent rester lents. Conseils : ①vérifiez d'abord la validité du JSON avec l'outil de formatage JSON ; ②confirmez qu'il s'agit d'un seul gros JSON et non de plusieurs JSON concaténés ; ③pour les fichiers très volumineux (10 Mo+), préférez les outils en ligne de commande comme yq ou kubectl convert ; ④si le navigateur se fige, fermez des onglets pour libérer de la mémoire puis réessayez.
Glossaire
- YAML
- YAML Ain't Markup Language (acronyme récursif) — format de sérialisation de données lisible par l'humain, langage de configuration de facto pour les outils DevOps comme Kubernetes, Docker Compose et Ansible.
- Indentation
- YAML utilise l'indentation (obligatoirement des espaces, jamais de tabulation) pour exprimer la hiérarchie ; une mauvaise indentation provoque des erreurs de parsing ou change le sens de la configuration — c'est le piège le plus courant en YAML.
- Séquence (Sequence)
- Représentation d'un tableau en YAML, chaque élément est noté - item, équivalent du tableau JSON.
- Mapping (Mapping)
- Représentation d'un objet en YAML, chaque paire clé-valeur est notée key: value, équivalent de l'objet JSON.
- Scalaire bloc (Block Scalar |)
- Syntaxe YAML pour chaînes multilignes, identifiée par le symbole |, qui conserve tous les sauts de ligne et l'indentation, équivalent d'un heredoc.
- Scalaire plié (Folded Scalar >)
- Syntaxe YAML pour chaînes multilignes, identifiée par le symbole >, qui remplace les sauts de ligne simples par des espaces et ne conserve les sauts de ligne qu'en cas de double saut (séparateur de paragraphe).
- Ancres et références (Anchor & Reference)
- YAML utilise &name pour définir une ancre et *name pour référencer le même bloc de configuration, évitant les répétitions ; courant en K8s quand un même Secret est référencé à plusieurs endroits.
- YAML 1.2
- Version stable actuelle de la spécification YAML (publiée en 2009, révisée en 2021), strictement respectée par cet outil (yaml.org/spec/1.2.2).
- YAML multi-document
- YAML permet plusieurs documents dans un seul fichier, séparés par le séparateur --- ; Kubernetes peut ainsi regrouper plusieurs ressources (Deployment+Service+ConfigMap) dans un seul .yaml.
- YAML Kubernetes
- Format YAML des manifestes de ressources Kubernetes, qui doivent obligatoirement contenir les quatre champs apiVersion, kind, metadata et spec — c'est le standard de fait pour les déploiements K8s.
- Problème de la Norvège (YAML 1.1)
- La spécification YAML 1.1 interprétait NO/On/Off comme booléens false, provoquant des erreurs de parsing de noms de pays ; YAML 1.2 corrige ce défaut, et la sortie de cet outil est conforme à la version 1.2.
- Docker Compose
- Fichier de configuration de l'outil d'orchestration multi-conteneurs Docker, au format YAML, définissant les sections services, networks et volumes — standard de fait pour les déploiements conteneurisés.
Correspondance des types JSON et syntaxe YAML
Cet outil convertit les types JSON en types YAML selon les règles suivantes :
| Type JSON | Syntaxe YAML | Remarque |
|---|---|---|
| string | name: "Alice" | YAML sans guillemets par défaut, guillemets doubles si caractères spéciaux |
| integer | port: 8080 | YAML identifie automatiquement le type numérique, sans guillemets |
| float | ratio: 3.14 | Flottants comme entiers, identifiés automatiquement par YAML |
| boolean | enabled: true | YAML n'accepte que true/false en minuscules, YAML 1.1 acceptait aussi yes/no |
| null | value: null ou value: ~ | YAML utilise null ou le tilde pour représenter une valeur vide |
| array | - item1\n- item2 | YAML utilise - en début de chaque ligne pour un élément |
| object | key:\n sub: value | Objet en key: value, imbrication par indentation |
| object array | - name: a\n- name: b | Tableau d'objets : - suivi de paires clé-valeur |
Comparatif des styles de chaînes YAML
YAML propose 6 syntaxes de chaînes, à choisir selon le besoin :
| Style | Exemple de syntaxe | Cas d'usage |
|---|---|---|
Sans guillemets | name: Alice | Chaîne simple, le plus courant |
Guillemets doubles | name: "Alice" | Caractères spéciaux, supporte \n etc. |
Guillemets simples | name: 'Alice' | Chaîne littérale, pas d'échappement |
Bloc | bio: |\n line1\n line2 | Conserve tous les sauts de ligne et l'indentation (heredoc) |
Plié | bio: >\n line1\n line2 | Saut simple → espace, double saut → paragraphe |
Balise explicite | value: !!str 123 | Force le type, surcharge l'inférence par défaut |
Exemples de conversion JSON vers YAML
Sortie YAML correspondant à des structures JSON complexes :
| Structure | Exemple |
|---|---|
| Entrée JSON | {"name": "app", "port": 8080} |
| Sortie YAML | name: app
port: 8080 |
| Entrée JSON | {"server": {"host": "0.0.0.0", "port": 443}} |
| Sortie YAML | server:
host: 0.0.0.0
port: 443 |
| Entrée JSON | {"hosts": [{"ip": "10.0.0.1"}, {"ip": "10.0.0.2"}]} |
| Sortie YAML | hosts:
- ip: 10.0.0.1
- ip: 10.0.0.2 |
| Entrée JSON | {"spec": {"replicas": 3, "image": "nginx:1.25"}} |
| Sortie YAML | spec:
replicas: 3
image: nginx:1.25 |
Privacy & Security
Toutes les opérations de cet outil — parsing JSON, génération YAML, échappement de chaînes, conversion Unicode, réparation intelligente JSON et lecture de fichiers — s'exécutent localement dans le moteur JavaScript du navigateur. Votre contenu JSON et la configuration YAML générée ne sont jamais envoyés sur un réseau ni enregistrés ou analysés. Vous pouvez convertir en toute confiance des JSON contenant des mots de passe de base de données, des clés API ou des secrets Kubernetes. L'historique local est conservé uniquement dans le localStorage de votre navigateur et disparaît dès que vous fermez le navigateur ou videz le cache.
Authoritative References
- yaml.orgSpécification officielle YAML 1.2
- yaml.orgFAQ officielle YAML
- WikipédiaYAML – Wikipédia
- KubernetesTutoriel officiel Kubernetes YAML
- DockerDocumentation officielle Docker Compose
- Compression JSON
- CSV vers JSON
- JSON vers CSV
- JSON Diff
- JSON Escape / Unescape
- JSON Flatten
- Formatage JSON
- Générateur JSON
- Requête JSONPath
- Fusionner JSON
- Réparer JSON
- Validateur JSON Schema
- Trier JSON
- JSON Stringify
- JSON vers HTML
- JSON vers Java
- JSON to Markdown
- JSON en SQL
- JSON vers TOML
- JSON vers TypeScript
- XML vers JSON
- JSON vers XML
- YAML vers JSON
- JSON vers YAML
- JSON vers Python
- JSON vers Go
- JSON vers Rust
- JSON vers Swift
- JSON vers C#
- JSON vers C++
- JSON vers PHP