alltools.one
Data‱
2025-06-21
‱
7 min
‱
alltools.one Team
JSONYAMLConversionConfigurationDevOps

Conversion JSON vers YAML : Un guide de migration complet

JSON et YAML reprĂ©sentent les mĂȘmes structures de donnĂ©es avec une syntaxe diffĂ©rente. La conversion entre les deux est simple dans la plupart des cas, mais les cas limites autour des types, des chaĂźnes multilignes et des commentaires nĂ©cessitent de l'attention. Ce guide couvre la correspondance complĂšte entre les formats.

Correspondance de syntaxe

Objets / Mappings

JSON :

{
  "database": {
    "host": "localhost",
    "port": 5432,
    "name": "myapp"
  }
}

YAML :

database:
  host: localhost
  port: 5432
  name: myapp

Tableaux / Séquences

JSON :

{
  "servers": ["web1", "web2", "web3"]
}

YAML :

servers:
  - web1
  - web2
  - web3

Structures imbriquées

JSON :

{
  "services": [
    {
      "name": "api",
      "ports": [8080, 8443],
      "env": {"NODE_ENV": "production"}
    }
  ]
}

YAML :

services:
  - name: api
    ports:
      - 8080
      - 8443
    env:
      NODE_ENV: production

Convertissez instantanément avec notre Convertisseur JSON vers YAML.

Cas limites Ă  surveiller

1. Commentaires

YAML prend en charge les commentaires ; JSON non. Lors de la conversion de YAML vers JSON, tous les commentaires sont perdus :

# This comment will be lost in JSON
database:
  host: localhost  # Also lost

2. ChaĂźnes multilignes

YAML dispose d'une syntaxe multiligne puissante que JSON n'a pas :

description: |
  This is a multi-line
  string that preserves
  line breaks.

En JSON, cela devient :

{
  "description": "This is a multi-line\nstring that preserves\nline breaks.\n"
}

3. Ambiguïté de type

YAML détecte automatiquement les types, ce qui peut causer des problÚmes :

version: 1.0    # Float, not string "1.0"
port: 080       # Octal 64, not string "080"
country: NO     # Boolean false, not string "NO"

En JSON, les types sont explicites :

{
  "version": "1.0",
  "port": "080",
  "country": "NO"
}

Lors de la conversion de JSON vers YAML, ajoutez des guillemets autour des valeurs qui pourraient ĂȘtre mal interprĂ©tĂ©es.

4. Valeurs null

Les deux prennent en charge null, mais la syntaxe diffĂšre :

value: null     # Explicit
value: ~        # YAML shorthand
value:          # Empty value = null
{ "value": null }

5. CaractÚres spéciaux dans les clés

Les clĂ©s JSON peuvent contenir n'importe quel caractĂšre unicode. Les clĂ©s YAML avec des caractĂšres spĂ©ciaux doivent ĂȘtre entre guillemets :

"content-type": "application/json"  # Hyphen needs quotes
simple_key: value                    # Underscore is fine

Conversion en ligne de commande

Avec yq (processeur YAML)

# JSON to YAML
yq -P input.json > output.yaml

# YAML to JSON
yq -o=json input.yaml > output.json

Avec Python

# JSON to YAML
python3 -c "import json, yaml, sys; print(yaml.dump(json.load(sys.stdin), default_flow_style=False))" < input.json > output.yaml

# YAML to JSON
python3 -c "import json, yaml, sys; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml > output.json

Avec jq + yq ensemble

# Process JSON, output as YAML
cat config.json | jq '.database' | yq -P

Quand utiliser chaque format

CritĂšreJSONYAML
Édition humainePlus difficile (crochets, virgules)Plus facile (syntaxe propre)
Parsing machinePlus rapidePlus lent
CommentairesNon supportésSupportés
Échange de donnĂ©esStandard (API)Rare
ConfigurationAcceptablePréféré
RigueurStrict (bien)Flexible (risqué)

Utilisez JSON pour : La communication API, le stockage de données, les configurations générées par machine, les environnements navigateur.

Utilisez YAML pour : Les configurations éditées manuellement, Docker Compose, Kubernetes, les pipelines CI/CD, Ansible.

Pour une comparaison plus approfondie, consultez notre article YAML vs JSON.

FAQ

YAML est-il un sur-ensemble de JSON ?

Oui, depuis YAML 1.2 (2009), tout document JSON valide est aussi du YAML valide. Un parseur YAML peut analyser du JSON directement. Cependant, l'inverse n'est pas vrai — les fonctionnalitĂ©s YAML comme les commentaires, les ancres et les chaĂźnes multilignes n'ont pas d'Ă©quivalent JSON.

Lequel est plus rapide Ă  analyser, JSON ou YAML ?

JSON est significativement plus rapide à analyser dans pratiquement tous les langages. Les parseurs JSON sont plus simples car le format a moins de syntaxe à gérer. Pour les fichiers de configuration chargés une seule fois au démarrage, la différence est négligeable. Pour le traitement de données à haut débit, JSON est le choix évident.

Ressources connexes

Published on 2025-06-21
JSON to YAML Conversion: A Complete Migration Guide | alltools.one