Aller au contenu

Convertisseur YAML en JSON

Obtenez un JSON fidèle à partir de n'importe quel YAML.

Sortie
Options
Fonctionne dans votre navigateur : vos données ne sont pas envoyées.

Mode d'emploi

  1. Collez votre YAML dans l’éditeur d’entrée.
  2. Dans Sortie, choisissez Indentation 2, Indentation 4 ou Minifier.
  3. Si votre fichier contient plusieurs documents, ouvrez Options et réglez Documents multiples sur Tableau JSON.
  4. Dans Options, réglez Clés numériques et booléennes sur Convertir en chaînes pour accepter les clés comme 200:, ou sur Refuser pour les signaler comme erreurs.

Exemples

Réponses OpenAPI avec des codes HTTP

Entrée
openapi: 3.0.3
info:
  title: API des commandes
  version: 1.0.0
paths:
  /commandes:
    get:
      responses:
        200:
          description: Liste des commandes
        404:
          description: Ressource introuvable
Sortie
{
    "openapi": "3.0.3",
    "info": {
        "title": "API des commandes",
        "version": "1.0.0"
    },
    "paths": {
        "/commandes": {
            "get": {
                "responses": {
                    "200": {
                        "description": "Liste des commandes"
                    },
                    "404": {
                        "description": "Ressource introuvable"
                    }
                }
            }
        }
    }
}

Deux documents Kubernetes

Entrée
apiVersion: v1
kind: Namespace
metadata:
  name: boutique
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: configuration
  namespace: boutique
data:
  LANGUE: fr-FR
  DEVISE: EUR
Sortie
[
  {
    "apiVersion": "v1",
    "kind": "Namespace",
    "metadata": {
      "name": "boutique"
    }
  },
  {
    "apiVersion": "v1",
    "kind": "ConfigMap",
    "metadata": {
      "name": "configuration",
      "namespace": "boutique"
    },
    "data": {
      "LANGUE": "fr-FR",
      "DEVISE": "EUR"
    }
  }
]

Configuration avec une ancre et une clé de fusion

Entrée
defaut: &defaut
  delai: 30
  tentatives: 3
production:
  <<: *defaut
  domaine: boutique.example.fr
  tentatives: 5
Sortie
{"defaut":{"delai":30,"tentatives":3},"production":{"delai":30,"domaine":"boutique.example.fr","tentatives":5}}

Comment les types YAML deviennent du JSON

YAMLJSONRemarque
name: Alice, "02134"chaîneLes nombres entre guillemets restent des chaînes.
30, 1.10, 0x1F, 12345678901234567890nombreÉcrits exactement comme dans le YAML ; l'hexadécimal et l'octal deviennent décimaux.
true, Falsebooléenyes, no, on restent des chaînes (YAML 1.2).
null, ~, valeur videnull
2001-12-14, 12:30:00chaîneAucune conversion cachée en timestamps.
listes, maps, ancres, clés de fusion <<tableau, objetLes alias sont développés ; l'ordre des clés est conservé.
.inf, .nan, !!binary, !Ref, liste utilisée comme clé—Erreur avec le chemin et la ligne, jamais de modification silencieuse.

FAQ

Les grands nombres perdent-ils en précision lors de la conversion ?

Le JSON produit conserve les grands entiers et les écritures comme 1.10, 1e3 et -0 sans arrondi. Les nombres hexadécimaux et octaux sont convertis en décimal.

Pourquoi yes et on ne deviennent-ils pas des booléens ?

En YAML 1.2, yes, no, on et off restent des chaînes ; true et false sont des booléens. Si le document déclare %YAML 1.1, les règles de cette version s’appliquent et une note vous le signale.

Pourquoi mon fichier YAML ne peut-il pas être converti en JSON ?

Les clés en double, les balises non prises en charge comme !Ref, les valeurs .inf et .nan et les alias récursifs bloquent la conversion. Le message indique la ligne et la colonne du problème ; corrigez-le avant de réessayer.

Mes données YAML sont-elles envoyées à un serveur ?

La conversion s’effectue dans votre navigateur, sans envoyer votre YAML ou votre JSON au serveur. Le texte d’entrée n’est pas enregistré ; les réglages sont conservés localement, et les transferts vers un autre outil utilisent temporairement sessionStorage.

Quelle taille de fichier YAML puis-je convertir ?

Les fichiers et les textes collés de plus de 10 Mo sont refusés. Les fichiers doivent être encodés en UTF-8 et ne pas être binaires.