Skip to content

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.

Sans pistage Fonctionne dans le navigateur Gratuit
Options · 2 espaces
Indentation
0 car.
JSON Sortie
0 lignes
Vérifié pour la conformité à la spec YAML 1.2, l'expansion ancre/alias et la correction de la gestion multi-document — Go Tools Engineering Team · 4 mai 2026

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. 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. 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. 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).

✗ Incorrect
services:
	web:
		image: nginx:1.25-alpine
✓ Correct
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.

✗ Incorrect
metadata:
  name: my-app
   namespace: production
✓ Correct
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.

✗ Incorrect
url: http://example.com:8080/api
tag: #latest
✓ Correct
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.

✗ Incorrect
# Circular anchor (rare but possible)
base: &base
  parent: *base
✓ Correct
# 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.

✗ Incorrect
# Only the first document is converted
apiVersion: v1
kind: ConfigMap
---
apiVersion: v1
kind: Secret
✓ Correct
# 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.

✗ Incorrect
# This comment will be lost
replicas: 3 # scale this up for production
✓ Correct
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 ?
Collez votre YAML dans le champ de saisie ci-dessus. L'outil le convertit instantanément en JSON dans votre navigateur — sans clic nécessaire. Vous pouvez ajuster l'indentation de sortie (2 ou 4 espaces) depuis le panneau Options. Une fois le JSON affiché dans la zone de sortie, cliquez sur Copier pour le récupérer dans votre presse-papiers ou sur Télécharger pour le sauvegarder en fichier .json. Tout s'exécute localement — vos données ne quittent jamais votre appareil.
Comment cet outil gère-t-il le YAML multi-document (séparateur ---) ?
YAML supporte plusieurs documents dans un seul flux, séparés par --- (le marqueur de début de document). Lorsque vous collez une chaîne YAML multi-document, cet outil utilise parseAllDocuments de la bibliothèque eemeli/yaml et retourne le premier document en JSON. Les documents supplémentaires au-delà du premier sont silencieusement ignorés. Si vous avez besoin de traiter tous les documents, divisez votre YAML sur --- et convertissez chaque section individuellement.
Comment les ancres et alias YAML (&anchor et *alias) sont-ils gérés ?
Les ancres YAML (&name) définissent un bloc réutilisable, et les alias (*name) le référencent. Cet outil développe complètement toutes les ancres et tous les alias lors de l'analyse, de sorte que le JSON de sortie contient les données complètes et déréférencées. Par exemple, si une ancre YAML définit un ensemble de limites de ressources et que plusieurs services l'aliasen avec des clés de fusion (<<: *anchor), la sortie JSON montre chaque champ explicitement intégré pour chaque service. Il s'agit du comportement correct pour JSON, qui n'a pas de concept de références. La bibliothèque eemeli/yaml gère l'expansion ancre/alias en toute sécurité, incluant la détection de références circulaires.
Les commentaires YAML sont-ils préservés dans la sortie JSON ?
Non. JSON ne supporte aucun type de commentaire — ni #, ni //, ni /* */. Lors de la conversion de YAML vers JSON, tous les commentaires sont définitivement perdus. Il s'agit d'une différence fondamentale entre formats, pas d'une limitation de cet outil. Si vous avez besoin de conserver des annotations, envisagez de les encoder comme un champ JSON dédié (comme une clé _comment) avant de convertir, ou gardez le source YAML comme version de référence avec les commentaires.
Comment utiliser cet outil avec un manifeste Kubernetes ?
Collez votre manifeste YAML Kubernetes (depuis un fichier .yaml, la sortie kubectl get -o yaml ou un template Helm) dans le champ de saisie. La sortie JSON peut ensuite être interrogée avec jq, envoyée directement à l'API REST Kubernetes, utilisée dans les sources de données Terraform ou traitée par tout outil attendant du JSON. Un flux de travail courant est de convertir les manifestes YAML vers JSON pour extraire des champs spécifiques — par exemple : jq '.spec.replicas' sur la sortie JSON pour vérifier les comptes de répliques sur les déploiements.
Comment cet outil aide-t-il avec les fichiers Docker Compose ?
Les fichiers Docker Compose sont en YAML par convention. Les convertir en JSON vous permet de traiter les définitions de services avec des outils JavaScript, des scripts jq ou tout système qui lit du JSON. Les cas d'usage courants comprennent l'extraction de tous les noms d'images pour construire une liste de dépendances, la génération de rapports depuis un fichier compose, ou l'alimentation de configurations Compose dans des outils d'orchestration CI/CD qui acceptent du JSON. Collez votre compose.yaml dans l'entrée et la sortie JSON est immédiatement prête pour un traitement en aval.
Quelle est la différence entre YAML 1.1 et YAML 1.2, et lequel cet outil utilise-t-il ?
YAML 1.1 (l'ancienne spec, encore utilisée par PyYAML, Ansible, Ruby Psych et de nombreux outils Kubernetes) traite les chaînes brutes comme yes, no, on, off, y et n comme des booléens true/false. Cela a causé le fameux problème Norway où le code ISO du pays « NO » était analysé comme false. YAML 1.2 (la spec actuelle, publiée en 2009) a corrigé cela : toutes les chaînes brutes sont des chaînes, et seuls true/false sont des booléens. Cet outil utilise le schéma YAML 1.2 pour l'analyse, ce qui signifie que yes et no dans votre entrée YAML sont préservés comme les valeurs chaîne « yes » et « no » dans la sortie JSON — pas comme les booléens true et false. Il s'agit du comportement moderne correct.
Pourquoi YAML interdit-il l'indentation par tabulation ?
La spécification YAML interdit explicitement les caractères de tabulation (\t) pour l'indentation — seuls les espaces sont autorisés. C'est une décision de conception délibérée pour éviter l'ambiguïté causée par la largeur de tabulation incohérente selon les éditeurs. Si votre YAML utilise des tabulations pour l'indentation (courant lors d'une copie depuis des éditeurs de texte qui auto-convertissent les espaces en tabulations), l'analyseur YAML générera une erreur. La correction consiste à remplacer toute indentation par tabulation avec des espaces. La plupart des éditeurs de code ont un paramètre pour convertir les tabulations en espaces.
Les grands nombres peuvent-ils perdre en précision lors de la conversion YAML vers JSON ?
Oui. Il s'agit d'une limitation fondamentale de JavaScript qui affecte tous les outils basés sur navigateur. Le float double précision IEEE 754 de JavaScript ne peut représenter exactement les entiers que jusqu'à 2^53 - 1 (9007199254740991). Les nombres YAML supérieurs à cette valeur — comme les champs int64 Kubernetes tels que resourceVersion — seront silencieusement arrondis. La solution sûre est de mettre entre guillemets les grands nombres dans votre source YAML (resourceVersion: '9007199254740993') pour que l'analyseur les traite comme des chaînes, préservées exactement en JSON sous forme de valeurs de chaîne.
Comment convertir du YAML en JSON en ligne de commande ?
L'approche la plus populaire utilise yq (version Mike Farah) et jq. Installez yq : brew install yq sur macOS ou téléchargez depuis github.com/mikefarah/yq/releases pour Linux. Puis exécutez : yq -o json input.yaml pour convertir un fichier YAML en JSON, ou cat input.yaml | yq -o json - pour lire depuis stdin. Pour une sortie formatée : yq -o json input.yaml | jq . — cela passe le JSON dans jq pour un formatage cohérent. Pour un script Python en une ligne : python3 -c "import sys, json, yaml; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml.
Mes données YAML sont-elles envoyées à un serveur lorsque j'utilise cet outil ?
Non. Toute la conversion se passe entièrement dans votre navigateur en JavaScript. Vos données YAML ne sont jamais transmises sur le réseau, jamais stockées sur un serveur, et jamais journalisées ou analysées. L'outil est donc sûr à utiliser avec des secrets Kubernetes, des identifiants de base de données, des valeurs Helm internes, des clés API dans des fichiers de config et toute autre configuration d'infrastructure sensible. Vous pouvez vérifier cela en ouvrant l'onglet Réseau de votre navigateur — vous verrez zéro requête déclenchée par le collage de YAML.
Y a-t-il une limite de taille pour l'entrée YAML ?
Il n'y a pas de limite stricte, mais les grandes entrées (supérieures à 200 Ko) passent automatiquement du mode en direct au mode manuel. En mode manuel, un bouton Convertir apparaît et la conversion ne s'exécute que lorsque vous cliquez dessus — cela empêche le thread principal du navigateur de se bloquer à chaque frappe. Pour les très grands fichiers YAML (plusieurs mégaoctets), envisagez des outils en ligne de commande comme yq pour de meilleures performances. L'outil gère efficacement les charges utiles réelles typiques : exports complets de namespaces Kubernetes, grandes spécifications OpenAPI et fichiers de valeurs Helm multi-services.