Table of Contents

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 true ou false, sans guillemets.
  • La valeur null repré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" }
  ]
}