Convertir YAML en JSON
Analyse un document YAML avec la bibliothèque yaml (schéma core de YAML 1.2) et le restitue en JSON indenté. Les commentaires sont supprimés, les anchors et aliases sont développés, et des valeurs comme yes ou 2024-01-01 restent des chaînes.
Envoyer des paramètres écrits en YAML à une API ou à un validateur JSON Schema qui n’accepte que du JSON.
Quand l’utiliser
- Envoyer des paramètres écrits en YAML à une API ou à un validateur JSON Schema qui n’accepte que du JSON.
- Vérifier comment un fichier de CI ou Kubernetes est réellement typé, par exemple si une version est une chaîne ou un nombre.
Mode d’emploi
- Collez un seul document YAML ou chargez un fichier .yaml/.yml.
- Si une erreur apparaît, vérifiez l’indentation, les clés en double et les séparateurs --- à la ligne indiquée.
- Contrôlez ce qui est chaîne ou nombre dans le JSON de sortie, puis copiez-le.
Entrée YAML
# deployment settings service: billing-api replicas: 2 version: "1.10" enabled: yes ports: - 80 - 443 env: LOG_LEVEL: info
JSON
{
"service": "billing-api",
"replicas": 2,
"version": "1.10",
"enabled": "yes",
"ports": [
80,
443
],
"env": {
"LOG_LEVEL": "info"
}
}Détails et limites
L’analyse s’exécute dans le navigateur. La sortie est toujours du JSON à 2 espaces ; il n’y a pas d’option de minification.
Les règles de YAML 1.2 s’appliquent : yes/no/on/off sont des chaînes, pas des booléens, et les dates sans guillemets restent des chaînes. 0o17 est en octal (15).
Les merge keys (<<: *anchor) ne sont pas fusionnées ; elles apparaissent comme une clé littérale "<<". Des clés en double dans un même mapping sont une erreur.
Les entiers au-delà de 2^53 perdent en précision en JSON. Mettez les identifiants longs entre guillemets dans le YAML.
FAQ
Peut-il convertir un fichier contenant plusieurs documents séparés par --- ?
Non. Plusieurs documents provoquent l’erreur "Source contains multiple documents". Collez un document à la fois. Un seul --- en tête ne pose pas de problème.
Pourquoi enabled: yes est-il une chaîne dans le JSON ?
Le parser suit YAML 1.2, où seuls true et false sont des booléens. Écrivez true/false si vous avez besoin d’un booléen JSON.
Les anchors et aliases sont-ils pris en charge ?
Oui. Un alias comme *base est remplacé par une copie de la valeur ancrée. La merge key << de YAML 1.1 n’est en revanche pas appliquée.