ToolDeck

YAML vers JSON

Convertir du YAML au format JSON

Essayer un exemple

Entrée YAML

Sortie JSON

Fonctionne localement · Sûr pour coller des secrets
Le JSON apparaîtra ici…
Essayez aussi :YAML to XML

Qu'est-ce que la conversion YAML vers JSON ?

La conversion YAML vers JSON transforme des données écrites en YAML (YAML Ain't Markup Language) en JSON (JavaScript Object Notation). Les deux formats représentent des données structurées sous forme de paires clé-valeur, de séquences et d'objets imbriqués, mais leur syntaxe diffère. YAML utilise l'indentation et une ponctuation minimale, tandis que JSON s'appuie sur les accolades, les crochets et les guillemets obligatoires. Convertir entre les deux est une tâche courante lorsqu'on fait transiter des données de configuration entre des systèmes qui attendent des formats différents.

YAML a été conçu pour la lisibilité humaine. Il prend en charge les commentaires, les chaînes multilignes, les ancres et les alias, aucune de ces fonctionnalités n'existant en JSON. Lors de la conversion de YAML vers JSON, ces fonctionnalités propres à YAML sont résolues : les ancres sont développées en ligne, les commentaires sont supprimés et les blocs multilignes deviennent des chaînes échappées. La sortie est du JSON valide, lisible par n'importe quel parseur JSON.

La spécification YAML 1.2 définit explicitement JSON comme un sous-ensemble de YAML, ce qui signifie que tout document JSON valide est aussi un YAML valide. L'inverse n'est pas vrai. Les documents YAML qui utilisent des commentaires, des ancres ou des clés complexes n'ont pas d'équivalent JSON direct et doivent être simplifiés lors de la conversion. Cet outil gère cette conversion automatiquement, produisant un JSON propre et bien formaté à partir de n'importe quelle entrée YAML valide.

YAML 1.2 Specification — yaml.org →

Pourquoi utiliser un convertisseur YAML vers JSON en ligne ?

Convertir du YAML en JSON à la main est source d'erreurs, surtout avec des structures profondément imbriquées ou des valeurs multilignes. Un convertisseur dans le navigateur te donne le résultat instantanément et détecte les erreurs de syntaxe YAML avant qu'elles n'atteignent ton application.

Conversion instantanée dans le navigateur
Colle ton YAML et obtiens une sortie JSON formatée en quelques millisecondes. Pas d'outil CLI à installer, pas d'étape de compilation, pas de dépendances à gérer.
🔀
Prend en charge toute structure YAML valide
Supporte les mappings imbriqués, les séquences, les chaînes multilignes (blocs littéraux et repliés), les ancres, les alias, les clés de fusion et tous les types scalaires YAML 1.2.
🔒
Tes données restent privées
Tout le traitement s'exécute localement dans ton navigateur en JavaScript. Ton contenu YAML n'est jamais envoyé à un serveur, ce qui le rend sûr pour les fichiers de configuration contenant des identifiants ou des chemins internes.
📋
Copier ou ajuster le format de sortie
Passe entre une indentation à 2 et à 4 espaces. Copie le résultat JSON dans ton presse-papiers en un clic pour l'utiliser directement dans du code, des requêtes API ou des fichiers de configuration.

Cas d'utilisation de YAML vers JSON

Développement frontend
Convertis des fichiers de configuration YAML issus d'un design system ou d'un CMS en JSON pour les bundlers JavaScript, les API REST ou les bibliothèques i18n qui nécessitent une entrée JSON.
Ingénierie backend
Transforme un fichier Spring Boot application.yml ou Rails database.yml en JSON pour l'injecter dans des scripts de déploiement, des API gateways ou des services qui n'acceptent que la configuration JSON.
DevOps et CI/CD
Convertis docker-compose.yml, les workflows GitHub Actions ou les manifestes Kubernetes en JSON pour des outils de validation, des moteurs de politique comme OPA ou du débogage avec jq.
QA et tests
Transforme des fixtures de test YAML en payloads JSON pour des outils de test d'API comme Postman, Insomnia ou des suites de tests automatisés qui attendent des corps de requête JSON.
Ingénierie des données
Convertis des définitions de pipeline YAML (Airflow, dbt, Dagster) en JSON pour la validation de schéma, la manipulation programmatique ou l'intégration avec des catalogues de métadonnées.
Apprentissage et documentation
Visualise rapidement comment les structures YAML se mappent à leurs équivalents JSON lorsque tu étudies des formats de configuration ou rédiges de la documentation.

Référence de correspondance des types YAML vers JSON

Chaque type de données YAML se mappe à un type JSON spécifique lors de la conversion. Le tableau ci-dessous présente chaque construct YAML avec sa sortie JSON correspondante. Comprendre ces correspondances te permet d'anticiper l'aspect de tes données YAML après conversion et d'éviter les surprises avec des types comme les booléens ou les valeurs null.

Type YAMLSyntaxe YAMLSortie JSON
Mappingname: Alice{ "name": "Alice" }
Sequence- apple\n- banana["apple", "banana"]
Stringgreeting: hello world"hello world"
Integercount: 4242
Floatratio: 3.143.14
Booleanactive: truetrue
Nullvalue: nullnull
Multiline (|)bio: |\n Line one\n Line two"Line one\nLine two\n"
Folded (>)note: >\n A long\n paragraph"A long paragraph\n"
Anchor/Alias&default\n <<: *defaultResolved inline (no $ref)

Syntaxe YAML vs JSON

YAML et JSON représentent le même modèle de données mais avec des règles de syntaxe différentes. Les différences ci-dessous expliquent pourquoi certaines fonctionnalités YAML — comme les commentaires et les ancres — n'ont pas d'équivalent JSON.

YAML
Utilise l'indentation pour l'imbrication (sans accolades). Prend en charge les commentaires avec #. Les chaînes n'ont généralement pas besoin de guillemets. Autorise les valeurs multilignes avec | (littéral) et > (replié) comme blocs scalaires. Prend en charge les ancres (&nom) et les alias (*nom) pour la réutilisation. En YAML 1.2, seuls true et false sont reconnus comme valeurs booléennes ; les anciens parseurs YAML 1.1 acceptaient aussi yes, no, on et off, mais ces valeurs sont traitées comme des chaînes ordinaires en YAML 1.2.
JSON
Utilise les accolades et les crochets pour l'imbrication. Pas de syntaxe de commentaire. Toutes les chaînes doivent être entre guillemets doubles. Pas de littéraux de chaîne multilignes — utilise des séquences d'échappement \n à la place. Pas de mécanisme d'ancre ou d'alias. Les valeurs booléennes sont strictement true et false en minuscules. Toutes les clés doivent être des chaînes entre guillemets. Les virgules de fin sont invalides.

Exemples de code

Voici des exemples fonctionnels pour convertir du YAML en JSON par programmation. Chaque exemple analyse une chaîne YAML et produit un JSON formaté.

JavaScript (Node.js)
import { load } from 'js-yaml'

const yamlStr = `
server:
  host: localhost
  port: 8080
  ssl: true
`

const json = JSON.stringify(load(yamlStr), null, 2)
console.log(json)
// → {
// →   "server": {
// →     "host": "localhost",
// →     "port": 8080,
// →     "ssl": true
// →   }
// → }
Python
import yaml, json

yaml_str = """
database:
  host: db.example.com
  port: 5432
  credentials:
    user: admin
    password: s3cret
"""

data = yaml.safe_load(yaml_str)
print(json.dumps(data, indent=2))
# → {
# →   "database": {
# →     "host": "db.example.com",
# →     "port": 5432,
# →     "credentials": {
# →       "user": "admin",
# →       "password": "s3cret"
# →     }
# →   }
# → }
Go
package main

import (
	"encoding/json"
	"fmt"
	"log"
	"gopkg.in/yaml.v3"
)

func main() {
	yamlData := []byte(`
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
`)

	var obj map[string]interface{}
	if err := yaml.Unmarshal(yamlData, &obj); err != nil {
		log.Fatal(err)
	}
	jsonBytes, _ := json.MarshalIndent(obj, "", "  ")
	fmt.Println(string(jsonBytes))
	// → { "services": { "web": { "image": "nginx:latest", "ports": ["80:80"] } } }
}
CLI (yq + jq)
# Convert a YAML file to JSON with yq
yq -o=json config.yaml > config.json

# Pipe YAML into yq for one-off conversion
echo "name: demo" | yq -o=json
# → { "name": "demo" }

# Python one-liner (no extra install on most systems)
python3 -c "import yaml, json, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < config.yaml

Questions fréquentes

YAML est-il un sur-ensemble de JSON ?
Oui, depuis YAML 1.2 (publié en 2009). Tout document JSON valide est aussi du YAML valide. La spécification YAML a été intentionnellement mise à jour pour garantir une compatibilité totale avec JSON. L'inverse n'est cependant pas vrai — les fonctionnalités YAML comme les commentaires, les ancres et les clés sans guillemets n'ont pas d'équivalent JSON.
Que deviennent les commentaires YAML lors de la conversion ?
Les commentaires sont supprimés. JSON ne dispose pas de syntaxe de commentaire, donc toutes les lignes commençant par # dans ton YAML sont perdues lors de la conversion. Si tu dois conserver les commentaires, garde le fichier YAML original comme source de vérité et génère le JSON à partir de celui-ci à la demande.
Comment les ancres et alias YAML sont-ils gérés ?
Les ancres (&nom) et les alias (*nom) sont résolus lors de l'analyse. L'alias est remplacé par une copie complète des données ancrées. Le JSON résultant ne contient aucune référence — toutes les valeurs sont développées en ligne. Les clés de fusion (<<: *nom) sont résolues de la même façon.
La conversion YAML vers JSON peut-elle entraîner une perte de données ?
Pour les valeurs de données, non. Tous les types scalaires YAML (chaînes, nombres, booléens, null) ont des équivalents JSON directs. Ce qui est perdu : les commentaires, les directives de balises, les noms d'ancres et la distinction entre les styles bloc et flux. Si ton YAML utilise des balises personnalisées (!!python/object, !!timestamp), celles-ci sont résolues en valeurs ordinaires ou peuvent provoquer une erreur d'analyse selon le parseur.
Pourquoi le booléen YAML 'yes' devient-il une chaîne en JSON ?
Cet outil utilise js-yaml v4, qui suit la résolution booléenne YAML 1.2. Seuls true et false (quelle que soit la casse) sont reconnus comme booléens. Les valeurs comme yes, no, on et off sont traitées comme des chaînes ordinaires et apparaissent entre guillemets dans la sortie JSON. Si tu vois des valeurs de chaîne inattendues là où tu attendais des booléens, remplace-les par true ou false dans ta source YAML.
Quelle est la taille maximale de fichier YAML que cet outil peut gérer ?
L'outil fonctionne dans ton navigateur, donc la limite dépend de la mémoire disponible sur ton appareil. En pratique, les fichiers allant jusqu'à plusieurs mégaoctets se convertissent sans problème. Pour les très grands fichiers (50 Mo et plus), un outil CLI comme yq ou un script Python avec PyYAML sera plus fiable car ils peuvent traiter les données en flux plutôt que de tout charger en mémoire d'un coup.
Comment les chaînes multilignes YAML sont-elles converties en JSON ?
YAML dispose de deux styles de blocs scalaires multilignes. Les blocs littéraux (|) préservent les sauts de ligne sous forme de caractères \n dans la chaîne JSON. Les blocs repliés (>) remplacent les sauts de ligne simples par des espaces, transformant plusieurs lignes en un seul paragraphe. Les deux styles ajoutent un saut de ligne final par défaut, que tu peux supprimer avec l'indicateur de découpe (|- ou >-).