Convertisseur JSON / YAML/ JSON ↔ YAML
Conversion bidirectionnelle entre JSON et YAML — changez de direction instantanément avec indentation JSON personnalisée.
JSON
YAML
Cet outil a-t-il résolu votre problème ?
Exemples de code
JavaScript (js-yaml)
// npm install js-yaml
import yaml from 'js-yaml';
// JSON → YAML
const obj = { name: 'Alice', scores: [100, 95] };
const yamlStr = yaml.dump(obj, { indent: 2 });
// name: Alice
// scores:
// - 100
// - 95
// YAML → JSON
const yamlInput = `
name: Alice
scores:
- 100
- 95
`;
const parsed = yaml.load(yamlInput);
JSON.stringify(parsed, null, 2);
// { "name": "Alice", "scores": [100, 95] }Python (PyYAML)
# pip install pyyaml
import yaml, json
# JSON → YAML
data = {"name": "Alice", "scores": [100, 95]}
yaml_str = yaml.dump(data, default_flow_style=False,
allow_unicode=True, indent=2)
# name: Alice
// scores:
// - 100
// - 95
# YAML → JSON
with open('config.yaml') as f:
data = yaml.safe_load(f) # use safe_load!
json_str = json.dumps(data, indent=2, ensure_ascii=False)
# Stream large files
for doc in yaml.safe_load_all(open('multi.yaml')):
print(json.dumps(doc))Go
// go get gopkg.in/yaml.v3
import (
"encoding/json"
"gopkg.in/yaml.v3"
)
// YAML → JSON
yamlStr := []byte("name: Alice\nage: 30")
var data map[string]interface{}
yaml.Unmarshal(yamlStr, &data)
jsonBytes, _ := json.MarshalIndent(data, "", " ")
// JSON → YAML
jsonStr := []byte(`{"name":"Alice","age":30}`)
var obj interface{}
json.Unmarshal(jsonStr, &obj)
yamlBytes, _ := yaml.Marshal(obj)
// age: 30
// name: AliceCLI Tools
# yq: YAML/JSON Swiss Army knife
# brew install yq / apt install yq
# YAML → JSON
yq -o=json config.yaml
# JSON → YAML
yq -P config.json
# In-place conversion
yq -i -o=yaml config.json
# Python one-liner: JSON → YAML
python3 -c "
import sys, json, yaml
print(yaml.dump(json.load(sys.stdin),
default_flow_style=False, allow_unicode=True))
" < config.jsonQuestions fréquemment posées
Quelle est la relation entre YAML et JSON ?
YAML est un sur-ensemble de JSON — du JSON valide est aussi du YAML valide. YAML ajoute : commentaires (#), chaînes multilignes (| et >), ancres et références (& et *), types date/heure flexibles et chaînes sans guillemets.
Quand utiliser YAML au lieu de JSON ?
YAML pour : configurations CI/CD, Docker Composite, manifests Kubernetes, fichiers de configuration édités par les humains, texte multiligne. JSON pour : échange de données API (plus rapide), exigences de type strictes, données générées par machine.
Quelles sont les règles d'indentation YAML ?
YAML utilise des espaces (jamais de tabulations) pour l'indentation. Toutes les clés au même niveau doivent avoir une indentation identique. Le standard est 2 ou 4 espaces. YAML est très sensible aux erreurs d'indentation.
Comment écrire des chaînes multilignes en YAML ?
Deux styles de bloc : bloc littéral (|) conserve les retours à la ligne. Bloc plié (>) remplace les retours simples par des espaces. Styles flow : guillemets simples (pas d'échappement), guillemets doubles (avec échappement).
Comment analyser du YAML en Node.js ?
Utilisez la bibliothèque js-yaml (npm install js-yaml) : const yaml = require('js-yaml'); const obj = yaml.load(yamlString); const str = yaml.dump(obj);. Pour la sécurité, utilisez yaml.safeLoad.
Quels sont les problèmes de compatibilité courants ?
1) Les commentaires YAML (#) sont perdus lors de la conversion en JSON. 2) Les ancres (&) et alias (*) sont développés en objets complets. 3) Les dates sont analysées comme objets Date. 4) Les très grands entiers peuvent perdre en précision.