Développement

JSON vs YAML : syntaxe comparée

Types de base, imbrication, commentaires : les différences de syntaxe entre JSON et YAML, et le piège classique des booléens implicites.

Gratuit Mis à jour le 11 septembre 2026

Types de base

{
  "nom": "Ana",
  "age": 32,
  "actif": true,
  "notes": null,
  "tags": ["admin", "beta"]
}
nom: Ana
age: 32
actif: true
notes: null
tags:
  - admin
  - beta

Objets imbriqués

{
  "adresse": {
    "ville": "Paris",
    "cp": "75001"
  }
}
adresse:
  ville: Paris
  cp: "75001"

Règles à retenir

JSON YAML
Commentaires non supportés oui, avec #
Indentation libre (accolades) significative, espaces uniquement
Guillemets sur les chaînes obligatoires optionnels sauf ambiguïté
Virgule finale interdite sans objet
Multi-lignes non oui, avec `

En YAML, oui, non, yes, no, on, off sont parfois interprétés comme des booléens selon le parseur. Mettez des guillemets si vous voulez une vraie chaîne : pays: "no".

Références et ancres en YAML

defaults: &defaults
  adapter: mysql
  timeout: 30

development:
  <<: *defaults
  database: dev_db

test:
  <<: *defaults
  database: test_db

&defaults définit une ancre réutilisable, <<: *defaults la fusionne dans un autre bloc — pratique pour éviter de répéter une configuration commune.

Quand choisir quoi

Contexte Format préféré Pourquoi
API REST, échange de données JSON Natif en JavaScript, parseur présent partout
Fichiers de configuration YAML Plus lisible pour un humain, commentaires possibles
Docker Compose, CI/CD, Kubernetes YAML Standard de l'écosystème DevOps
Stockage/sérialisation stricte JSON Syntaxe non ambiguë, pas de piège d'indentation

L'indentation YAML doit être faite avec des espaces, jamais des tabulations — un mélange des deux est l'erreur la plus fréquente et produit souvent une erreur de parsing peu explicite.

#Web
naviguer ouvrir Esc fermer