Format léger, textuel et standardisé pour représenter des données structurées, largement utilisé pour échanger des informations entre systèmes (serveur/client, API, microservices).
Le JSON n’est pas un langage de programmation, mais un format de données simple, lisible à la fois par les humains et les machines.
Il permet de décrire des objets (paires clé/valeur) et des tableaux de manière hiérarchique, sans dépendre d’un langage particulier — même s’il s’inspire de la syntaxe des objets JavaScript.
Le JSON, c’est comme une fiche technique universelle :
{"nom": "Dupont", "age": 35, "villes": ["Paris", "Lyon"]}
→ Tout logiciel, peu importe sa technologie (Python, PHP, Java, etc.), peut lire et comprendre cette structure.
Structure de base
Le JSON supporte :
- Objets :
{ "clé": "valeur" } - Tableaux :
[ "valeur1", "valeur2" ] - Types de données : chaînes (
"texte"), nombres (42,3.14), booléens (true/false),null - Imbrications : objets dans des tableaux, tableaux dans des objets, etc.
Exemple :
{
« nom »: « Projet Wanimi »,
« version »: « 1.2.0 »,
« auteurs »: [« Stéphane », « Aksel »],
« dépendances »: {
« express »: « ^4.18 »,
« lodash »: « ^4.17 »
},
« licence »: « MIT »
}
Règles strictes :
Pas de commentaires autorisés (contrairement à JavaScript).
Les clés doivent être entre guillemets doubles ("),
Pas de virgule finale dans les objets/tableaux,
Usages courants
| Contexte | Utilisation du JSON |
|---|---|
| API REST | Format d’échange standard entre client et serveur |
| Configuration | Fichiers package.json, composer.json, tsconfig.json, etc. |
| Web sémantique | Données structurées au format JSON-LD pour le SEO (ex. : schema.org) |
| Stockage léger | Remplacement simple de bases de données (ex. : applications locales) |
| Logs et échanges | Format standardisé pour les événements (ex. : dans les pipelines data) |
Manipulation en programmation
En JavaScript
const data = JSON.parse('{"nom":"Agnès"}'); // chaîne → objet
const texte = JSON.stringify(data); // objet → chaîne
En Python : json.loads() / json.dumps()
En PHP : json_decode() / json_encode()
JSON vs XML vs YAML
| Format | Lisible ? | Verbeux ? | Support des types ? | Cas d’usage |
|---|---|---|---|---|
| JSON | Oui | Non | Oui (limité) | APIs, web, config |
| XML | Moyen | Très | Oui (complexe) | Anciens services, SOAP |
| YAML | Très | Non | Oui | Config (Docker, Kubernetes) |
- Le terme « JSON » est utilisé tel quel en français (prononcé « jay-son » ou « jzon »).
- On parle de « format JSON », « fichier JSON », ou « données au format JSON ».
- La traduction littérale « notation objet JavaScript » est rarement utilisée en pratique.