Le format JSON
Le format JSON (JavaScript Object Notation) est un format léger d'échange de données.
Il est facile à lire et à écrire pour les humains, et facile à analyser et à générer pour les machines.
Syntaxe de base
JSON organise les données de manière très basique.
- Tout le contenu est inclus dans un conteneur nommé "objet", délimité par des accolades
{}. - Un objet contient des paires clé-valeur, où chaque clé est une chaîne de caractères (string) suivie de deux points
:et d'une valeur. Ces paires sont nommées "propriétés". - Chaque paire clé-valeur est séparée par une virgule
,. - Une clé doit être unique au sein d'un même objet.
- Une valeur peut être de différents types : chaîne de caractères (string), nombre (number), booléen (boolean), tableau (array), objet (object) ou null.
- Un tableau est une liste ordonnée de valeurs, délimitée par des crochets
[]où chaque valeur est séparée par une virgule. - Les objets peuvent être imbriqués, c'est-à-dire qu'une valeur peut elle-même être un objet ou un tableau.
- Les chaînes de caractères doivent être entourées de guillemets doubles
" ". Si elles contiennent des guillemets doubles, ceux-ci doivent être échappés avec un antislash\". - Les nombres peuvent être entiers ou à virgule flottante, et ne doivent pas être entourés de guillemets.
- Les nombres négatifs sont précédés d'un signe moins
-. - Les nombres à virgule flottante utilisent un point
.comme séparateur décimal. - Les nombres ne doivent pas contenir de séparateurs de milliers.
- Les booléens sont représentés par les mots-clés
trueoufalse, sans guillemets. - La valeur
nullreprésente l'absence de valeur. - Les dates ne sont pas un type natif en JSON et sont représentées sous forme de chaînes de caractères au format ISO 8601.
Le site json.org fournit une description complète de la syntaxe JSON.
Exemple
Voici un exemple imaginaire mais valide d'un objet JSON représentant une personne :
{
"LastName": "Dupont",
"FirstName": "Jean",
"HasSubscribedToWebApiCpa": true,
"Distance" : {"Value": 12.5, "Unit": "km"},
"Address": {
"Street": "123 Rue Principale",
"City": "Paris",
"ZipCode": "75001"
},
"Phones": ["0123456789", "0987654321"],
"LastPurchaseDate": "2025-04-15T14:38:16Z",
"Email": null,
"Accounts": [
{ "Type": "General", "Value": "41100000" },
{ "Type": "Subsidiary", "Value": "DP000001" }
]
}