Convertisseur YAML vers JSON
Collez du YAML, obtenez du JSON instantanément. En direct dans le navigateur. Manifestes K8s, specs OpenAPI et valeurs Helm supportés. 100 % privé, sans envoi.
Options · 2 espaces
Qu'est-ce que JSON ?
JSON (JavaScript Object Notation) est un format d'échange de données léger et basé sur du texte, standardisé en RFC 8259 et ECMA-404. Il supporte six types de données — chaînes, nombres, booléens, null, tableaux et objets — avec une syntaxe stricte et minimale que pratiquement tous les langages de programmation, API et chaînes d'outils peuvent analyser nativement. Alors que YAML est le format préféré pour les fichiers de configuration écrits par des humains (manifestes Kubernetes, GitHub Actions, playbooks Ansible, valeurs Helm), JSON est le format universel lisible par machine pour les API, les scripts d'automatisation et le traitement de données programmatique.
Convertir du YAML en JSON est donc l'une des tâches les plus courantes en DevOps et développement backend — vous avez un fichier de configuration YAML mais vous avez besoin de JSON pour l'alimenter dans une API REST, l'interroger avec jq ou le traiter avec des outils JavaScript.
Cet outil présente quatre différenciateurs importants par rapport aux convertisseurs en ligne typiques :
**1. Gestion du YAML multi-document.** YAML supporte plusieurs documents dans un seul flux séparés par --- (le marqueur de début de document). De nombreux fichiers YAML du monde réel — incluant certains manifestes Kubernetes et playbooks Ansible — contiennent plusieurs documents. Cet outil utilise parseAllDocuments de la bibliothèque eemeli/yaml avec les options { version: '1.2', merge: true } et retourne le premier document en JSON, communiquant clairement ce qui a été pris. Si vous avez besoin de tous les documents, divisez sur --- et convertissez chaque partie individuellement.
**2. Expansion des ancres et alias.** Les ancres YAML (&name) et les alias (*name) permettent la réutilisation de blocs de données — une fonctionnalité YAML puissante sans équivalent JSON. Cet outil développe complètement toutes les ancres et tous les alias (incluant les clés de fusion : <<: *anchor) pour que la sortie JSON contienne des données complètes et autonomes sans aucune référence. C'est toujours la transformation correcte car JSON n'a pas de syntaxe de référence. L'expansion est gérée en toute sécurité par la bibliothèque eemeli/yaml, qui inclut une protection contre les références circulaires. Découvrez comment cela se compare à la direction inverse sur Convertisseur JSON vers YAML.
**3. Perte de commentaires — Transparence pédagogique.** YAML supporte les commentaires #, fréquemment utilisés dans les manifestes Kubernetes, les valeurs Helm et les playbooks Ansible pour documenter l'intention. JSON n'a pas de syntaxe de commentaire, donc les commentaires sont définitivement supprimés lors de la conversion. Ce n'est pas un bug — c'est une différence fondamentale entre formats. Cet outil le rend explicite pour que vous sachiez à quoi vous attendre. Si vous avez besoin de conserver des annotations, encodez-les comme des champs JSON (clés _comment ou un objet de métadonnées dédié) avant de convertir, ou gardez YAML comme source de référence. Voir notre analyse approfondie des différences YAML-JSON pour plus d'informations sur les compromis de formats.
**4. Confidentialité 100 % basée sur le navigateur.** Vos données YAML — qui contiennent souvent des secrets Kubernetes, des identifiants de base de données, des valeurs Helm avec des mots de passe et des configurations de services internes — ne quittent jamais votre navigateur. Aucune donnée n'est envoyée à un serveur. Vous pouvez le vérifier dans l'onglet Réseau de votre navigateur. Après la conversion en JSON, vous pouvez valider et formater le résultat avec notre Formateur JSON avant de l'utiliser en aval.
La richesse de YAML (commentaires, ancres, support multi-document, scalaires de bloc) le rend excellent pour les fichiers de configuration rédigés par des humains où la lisibilité et la documentation importent. La rigueur et l'universalité de JSON en font le meilleur choix lorsqu'une machine est le consommateur principal. Ce convertisseur fait le pont entre les deux mondes : gardez votre configuration en YAML pour la maintenabilité humaine, convertissez en JSON quand vous avez besoin d'un échange lisible par machine.
// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';
const yamlString = `apiVersion: apps/v1
kind: Deployment`;
// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });
// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);
console.log(json);
// {
// "apiVersion": "apps/v1",
// "kind": "Deployment"
// } Fonctionnalités clés
Conversion en direct
La sortie JSON se met à jour instantanément au fil de la saisie ou du collage de YAML — sans bouton Convertir. Les grandes entrées (>200 Ko) passent automatiquement en mode manuel pour maintenir la réactivité du navigateur.
Indentation 2 ou 4 espaces
Basculez entre 2 et 4 espaces d'indentation pour la sortie JSON. 2 espaces est standard pour la plupart des outils et API ; 4 espaces correspond à certains guides de style et valeurs par défaut des éditeurs.
Support multi-document
Gère les flux YAML avec plusieurs documents séparés par ---. Le premier document est converti en JSON et retourné. Utile pour les fichiers Kubernetes multi-ressources et les playbooks Ansible.
Expansion des ancres et alias
Développe complètement les ancres YAML (&name) et les alias (*name), incluant les clés de fusion (<<: *anchor). La sortie JSON contient des données complètes et déréférencées sans aucune référence — comportement correct car JSON n'a pas d'équivalent.
Confidentialité 100 % basée sur le navigateur
Toute la conversion s'exécute localement dans votre navigateur en JavaScript. Vos données YAML — y compris les secrets, les identifiants et les configs de production — ne sont jamais envoyées à un serveur, jamais journalisées et jamais stockées.
Gère K8s, Compose, Helm et OpenAPI
Optimisé pour les cas d'usage DevOps réels : manifestes Kubernetes, piles Docker Compose, valeurs de charts Helm, workflows GitHub Actions, spécifications OpenAPI et playbooks Ansible — avec des exemples pour chacun.
Exemples
Manifeste Kubernetes
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
namespace: production
labels:
app: my-app
version: 1.0.0
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: my-app:1.0.0
ports:
- containerPort: 8080
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m Convertir un manifeste de déploiement Kubernetes de YAML vers JSON — utile pour interroger avec jq, envoyer à l'API Kubernetes ou alimenter des pipelines Terraform et CI/CD
Docker Compose
version: '3.9'
services:
web:
image: nginx:1.25-alpine
ports:
- '80:80'
- '443:443'
environment:
NGINX_HOST: example.com
NGINX_PORT: '80'
depends_on:
- db
restart: unless-stopped
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: mydb
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
volumes:
- pgdata:/var/lib/postgresql/data
volumes:
pgdata: {} Convertir un fichier Docker Compose YAML vers JSON pour une manipulation programmatique, l'alimentation de scripts d'automatisation ou le traitement avec des outils JavaScript
Workflow GitHub Actions
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Run tests
run: pnpm test Analyser un workflow GitHub Actions YAML vers JSON pour interroger des champs spécifiques, valider la structure ou intégrer avec des API qui consomment du JSON
Spécification OpenAPI
openapi: 3.0.3
info:
title: User API
version: 1.0.0
description: Manage application users
paths:
/users:
get:
summary: List users
operationId: listUsers
parameters:
- name: limit
in: query
schema:
type: integer
default: 20
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/User'
/users/{id}:
get:
summary: Get user
operationId: getUser
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: Success
components:
schemas:
User:
type: object
properties:
id:
type: string
name:
type: string
email:
type: string
format: email Convertir une spécification OpenAPI 3.0 de YAML vers JSON pour une utilisation avec des générateurs de code client, des outils de test d'API ou une inspection de schéma programmatique
Helm values.yaml
replicaCount: 3
image:
repository: my-app
tag: 1.0.0
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
ingress:
enabled: true
className: nginx
hosts:
- host: my-app.example.com
paths:
- path: /
pathType: Prefix
resources:
requests:
memory: 64Mi
cpu: 250m
limits:
memory: 128Mi
cpu: 500m
autoscaling:
enabled: false
minReplicas: 1
maxReplicas: 10
targetCPUUtilizationPercentage: 80 Convertir les valeurs Helm chart values.yaml vers JSON pour l'analyse, la génération de rapports ou l'alimentation d'outils attendant une configuration JSON
Ansible Playbook
- name: Configure web servers
hosts: webservers
become: true
vars:
http_port: 80
max_clients: 200
tasks:
- name: Ensure nginx is installed
ansible.builtin.package:
name: nginx
state: present
- name: Start nginx service
ansible.builtin.service:
name: nginx
state: started
enabled: true
- name: Copy nginx config
ansible.builtin.template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
owner: root
group: root
mode: '0644'
notify:
- Restart nginx
handlers:
- name: Restart nginx
ansible.builtin.service:
name: nginx
state: restarted Analyser un playbook Ansible YAML vers JSON pour inspecter la structure des tâches, auditer les configurations ou intégrer avec des pipelines de reporting
Comment utiliser
- 1
Collez votre YAML
Entrez ou collez vos données YAML dans le champ de saisie ci-dessus. Vous pouvez aussi cliquer sur « Charger un exemple » pour essayer un exemple comme un déploiement Kubernetes, un fichier Docker Compose ou un Helm values.yaml.
- 2
Consultez la sortie JSON en direct
Le JSON apparaît instantanément dans le panneau de sortie. Ajustez les Options (indentation 2 ou 4 espaces) pour correspondre aux exigences de votre outil cible.
- 3
Copiez ou téléchargez
Cliquez sur Copier pour récupérer le JSON dans votre presse-papiers, ou sur Télécharger pour le sauvegarder en fichier .json prêt pour jq, les appels API ou tout outil en aval.
Pièges courants YAML
Indentation par tabulation
La spécification YAML interdit les caractères de tabulation pour l'indentation — seuls les espaces sont autorisés. Si votre YAML a été écrit ou copié-collé depuis un éditeur qui utilise des tabulations, l'analyseur générera une erreur. Remplacez toute indentation par tabulation avec des espaces (2 ou 4 espaces par niveau).
services: web: image: nginx:1.25-alpine
services:
web:
image: nginx:1.25-alpine Indentation non concordante
YAML utilise une indentation cohérente pour définir l'imbrication. Mélanger différents nombres d'espaces dans le même bloc (par ex. 2 espaces à un niveau et 3 à un autre) cause des erreurs d'analyse. Chaque niveau doit s'indenter du même nombre d'espaces tout au long du document.
metadata: name: my-app namespace: production
metadata: name: my-app namespace: production
Caractères spéciaux non mis entre guillemets
Les caractères comme :, #, &, *, {, }, [, ], |, >, ! et @ ont une signification spéciale en YAML. Les utiliser sans guillemets dans des valeurs peut causer des erreurs d'analyse ou un comportement inattendu. Mettez entre guillemets les valeurs contenant ces caractères avec des guillemets simples ou doubles.
url: http://example.com:8080/api tag: #latest
url: 'http://example.com:8080/api' tag: '#latest'
Cycles d'ancres
YAML permet techniquement les ancres qui se référencent elles-mêmes (références circulaires), bien que cela soit rare en pratique. Une ancre circulaire fait entrer l'analyseur dans une boucle d'expansion infinie. La bibliothèque eemeli/yaml détecte et génère une erreur pour les ancres circulaires plutôt que de se bloquer.
# Circular anchor (rare but possible) base: &base parent: *base
# Use explicit fields instead of circular references base: parent: null
Confusion multi-document
Les fichiers YAML avec plusieurs séparateurs --- contiennent plusieurs documents. Cet outil ne retourne que le premier document en JSON. Si vous attendiez des données d'un document ultérieur (après le deuxième ou troisième ---), elles n'apparaîtront pas dans la sortie. Divisez votre YAML sur --- et convertissez chaque section séparément si vous avez besoin de tous les documents.
# Only the first document is converted apiVersion: v1 kind: ConfigMap --- apiVersion: v1 kind: Secret
# Convert each document separately apiVersion: v1 kind: ConfigMap
Perte de commentaires
YAML supporte les commentaires # mais JSON ne le fait pas. Tous les commentaires YAML sont définitivement supprimés lors de la conversion — il s'agit d'une différence fondamentale entre formats, pas d'une limitation de l'outil. Si vous avez besoin de conserver des annotations en JSON, encodez-les comme un champ dédié tel qu'une clé _comment ou un objet de métadonnées.
# This comment will be lost replicas: 3 # scale this up for production
replicas: 3 _comment: scale this up for production
Cas d'utilisation courants
- Analyse de manifestes Kubernetes
- Convertissez les manifestes YAML Kubernetes en JSON pour les interroger avec jq, les envoyer à l'API REST Kubernetes, les traiter dans des sources de données Terraform ou les alimenter dans des pipelines CI/CD attendant du JSON.
- Docker Compose vers outils JavaScript
- Analysez le YAML Docker Compose en JSON pour extraire les définitions de services, les noms d'images, les mappages de ports et les variables d'environnement pour une utilisation dans des scripts d'automatisation, des graphes de dépendances ou des outils Node.js.
- Intégration API GitHub Actions
- Convertissez les workflows GitHub Actions YAML en JSON pour valider la structure programmatiquement, extraire les définitions de jobs et d'étapes, ou intégrer avec des API CI/CD qui acceptent des spécifications de workflows JSON.
- OpenAPI vers génération de code client
- De nombreux générateurs de code (openapi-generator, swagger-codegen, oazapfts) acceptent les spécifications OpenAPI dans les deux formats. Convertissez votre spec YAML en JSON lorsqu'un outil nécessite spécifiquement une entrée JSON ou lorsque vous avez besoin de l'inspecter avec des validateurs JSON Schema.
- Analyse des valeurs Helm
- Convertissez les valeurs Helm chart values.yaml en JSON pour générer des rapports, comparer les valeurs entre environnements, alimenter des outils d'application de politiques ou traiter avec une automatisation attendant une configuration JSON.
- Migration de configuration vers des outils JSON
- Migrez la configuration d'application de YAML (courant dans les outils d'infrastructure) vers JSON pour une utilisation dans des environnements JavaScript, des API REST, AWS AppConfig, Azure App Configuration ou tout système stockant la configuration en JSON.
Détails techniques
- Spec YAML 1.2 via parseAllDocuments avec merge:true
- Le YAML est analysé avec la bibliothèque eemeli/yaml (v2.8+, sécurisée CVE) via parseAllDocuments avec { version: '1.2', merge: true }. Le schéma YAML 1.2 garantit que les chaînes brutes comme yes et no sont traitées comme des chaînes (pas des booléens), correspondant à la spécification YAML actuelle. L'option merge: true développe complètement les clés de fusion ancre/alias (<<: *anchor) pour que la sortie JSON contienne des données complètes et déréférencées. Le YAML multi-document (séparé par ---) retourne le premier document.
- Expansion des ancres et alias via bibliothèque
- La bibliothèque eemeli/yaml gère l'expansion des ancres (&name) et alias (*name) en toute sécurité, incluant la détection de références circulaires. Tous les blocs de données aliasés — incluant les expansions de clés de fusion — sont entièrement intégrés dans la sortie JSON. C'est la transformation correcte car JSON n'a pas de concept de référence ou d'ancre. L'expansion sûre de la bibliothèque prévient les boucles infinies dues à un YAML malformé.
- Basé sur le navigateur — Pas de téléchargement, pas de serveur
- Tout le traitement se passe entièrement dans le moteur JavaScript de votre navigateur. Aucune donnée n'est transmise sur le réseau à aucun moment. Les entrées supérieures à 200 Ko passent automatiquement du mode en direct au mode manuel (nécessitant un clic explicite sur Convertir) pour maintenir la réactivité du navigateur et éviter le blocage du thread principal lors d'une sérialisation intensive.
Bonnes pratiques
- Utilisez la syntaxe compatible YAML 1.2 pour une conversion propre
- Rédigez votre YAML avec les conventions YAML 1.2 — mettez explicitement entre guillemets les valeurs de chaîne yes, no, on, off, y et n (par ex. enabled: 'yes') pour éviter l'ambiguïté. Cet outil analyse avec le schéma YAML 1.2 (donc ce sont des chaînes), mais les anciens outils de votre pipeline peuvent utiliser YAML 1.1 (où ils deviennent des booléens). Les guillemets explicites dans le YAML source est la pratique la plus sûre pour tous les analyseurs.
- Mettez les grands nombres entre guillemets en YAML pour préserver la précision
- JavaScript ne peut pas représenter exactement les entiers supérieurs à 2^53 - 1 (9007199254740991). Les champs Kubernetes comme resourceVersion et uid sont des int64 côté serveur et peuvent dépasser cette limite. Dans votre source YAML, mettez ces valeurs entre guillemets (resourceVersion: '9007199254740993') pour que l'analyseur les traite comme des chaînes, préservées exactement dans la sortie JSON sous forme de valeurs de chaîne.
- Validez la sortie JSON avant de l'utiliser dans des API
- Après avoir converti YAML vers JSON, validez le résultat avant de l'envoyer à une API, de le stocker ou de le traiter programmatiquement. Utilisez notre Formateur JSON pour confirmer que la structure est correcte. C'est particulièrement important pour les appels à l'API Kubernetes, les spécifications OpenAPI et tout payload validé par JSON Schema, où une erreur structurelle cause un rejet déroutant au niveau de l'API plutôt qu'à l'étape de conversion.
- Séparez le YAML multi-document avant de convertir
- Si votre fichier YAML contient plusieurs documents séparés par --- et que vous avez besoin de tous en JSON, divisez d'abord le fichier sur --- et convertissez chaque document individuellement. Cet outil ne prend que le premier document. Une approche simple : divisez sur '\n---\n' dans votre éditeur ou avec awk, puis collez chaque section séparément.
- Utilisez jq pour le traitement JSON en aval
- Une fois que vous avez du JSON depuis votre YAML, jq est le moyen le plus rapide de l'interroger et de le transformer en ligne de commande. Combinez cet outil avec jq : convertissez votre YAML en ligne, collez le JSON, puis utilisez jq '.spec.replicas' ou jq '.services | keys' pour extraire exactement ce dont vous avez besoin. Pour le traitement en lot de nombreux fichiers, utilisez directement le CLI yq avec le flag -o json.
Questions fréquentes
Comment convertir du YAML en JSON en ligne ?
Comment cet outil gère-t-il le YAML multi-document (séparateur ---) ?
Comment les ancres et alias YAML (&anchor et *alias) sont-ils gérés ?
Les commentaires YAML sont-ils préservés dans la sortie JSON ?
Comment utiliser cet outil avec un manifeste Kubernetes ?
Comment cet outil aide-t-il avec les fichiers Docker Compose ?
Quelle est la différence entre YAML 1.1 et YAML 1.2, et lequel cet outil utilise-t-il ?
Pourquoi YAML interdit-il l'indentation par tabulation ?
Les grands nombres peuvent-ils perdre en précision lors de la conversion YAML vers JSON ?
Comment convertir du YAML en JSON en ligne de commande ?
Mes données YAML sont-elles envoyées à un serveur lorsque j'utilise cet outil ?
Y a-t-il une limite de taille pour l'entrée YAML ?
Outils connexes
Voir tous les outils →Décodeur et Encodeur Base64
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.
Formateur et Validateur JSON
Encodage et formatage
Formatez, validez et embellissez vos JSON dans le navigateur. Validation syntaxique, détection d'erreurs, minification et copie en un clic. 100 % privé.
Convertisseur JSON vers YAML
Encodage et formatage
Collez du JSON, obtenez du YAML instantanément. En direct dans le navigateur. K8s/Compose, 2/4 espaces, guillemets sécurisés Norway. 100 % privé, sans envoi.
Encodeur et Décodeur URL avec Analyseur de Structure Intégré
Encodage et formatage
Décodez et encodez vos URLs instantanément. Analyseur intégré : protocole, hôte, chemin et paramètres. Modes encodeURI/encodeURIComponent. 100 % privé.
Convertisseur de Base — Binaire, Hex, Décimal & Octal
Outils de conversion
Convertissez entre binaire, hexadécimal, décimal, octal et toute base (2-36) instantanément. Gratuit, privé, 100 % dans votre navigateur.
Compressez vos Images JPEG, PNG & WebP en Ligne
Outils de conversion
Compressez vos images JPEG, PNG et WebP gratuitement dans le navigateur. Lots de 20 images, qualité réglable, comparaison avant/après. 100 % privé.