HomeBlogQu’est-ce que le JSON ?
Principes base API

Qu’est-ce que le JSON ?

Format JSON : ce que c’est, comment il est structuré et quel est son lien avec les API

Lorsque deux applications informatiques doivent échanger des données structurées, elles ont besoin d'un format commun qui soit léger, simple et compréhensible pour les deux systèmes (et si possible aussi pour les êtres humains). 

Aujourd'hui, ce format est presque toujours le JSON. Né au début des années 2000 pour simplifier l'échange de données au sein des applications web sans alourdir le réseau, il est devenu le standard des API REST, de la gestion des fichiers de configuration et du stockage des données dans plusieurs bases de données.

Qu'est-ce que le format JSON

JSON est l'acronyme de JavaScript Object Notation. C'est un format textuel de structuration et d'échange de données, facile à lire aussi bien pour les êtres humains que pour les machines.

Le JSON a été décrit au début des années 2000 par Douglas Crockford. C'est Crockford lui-même qui, en avril 2001, a envoyé le premier message JSON, adressé à Chip Morningstar, son collègue chez Electric Communities.

Bien qu'il repose sur un sous-ensemble de JavaScript (Standard ECMA-262), le JSON est un format texte totalement indépendant du langage de programmation. Il utilise toutefois des conventions bien connues de quiconque travaille avec C et C++, Java, Perl, Python et d'autres langages de programmation.

Le JSON est devenu un standard ECMA en 2013 et a été mis à jour pour la dernière fois en 2017, avec la publication de la norme ISO/IEC 21778.

JSON : comment est-il structuré ?

Un fichier JSON se présente comme un fichier texte basé sur deux structures fondamentales :

  • Objet, un ensemble de paires clé-valeur délimité par des accolades ;
  • Tableau (array), une liste ordonnée de valeurs placée entre crochets.

À l'intérieur du fichier, les clés (ou noms) doivent toujours être entourées de guillemets doubles (par exemple : "nom"). Les valeurs et les paires clé-valeur sont séparées par une virgule. Et à l'intérieur de l'objet, la clé est suivie de deux-points, qui introduisent la valeur correspondante.

Un fichier JSON peut par exemple se présenter ainsi :

{

  "nom": "Marco",

  "age": 30,

  "etudiant": false,

  "interets": ["programmation", "lecture", "voyages"],

  "adresse": {

    "ville": "Rome",

    "code_postal": "00100"

  },

  "telephone": null

}

Quelles valeurs le format JSON accepte-t-il ?

En termes de valeurs, le format JSON prend en charge quelques types de données fondamentaux :

  • Booléens (true, false) ;
  • Nombres entiers et décimaux ;
  • Chaînes de caractères entourées de guillemets doubles ;
  • Tableaux (séquences ordonnées de valeurs, séparées par des virgules et placées entre crochets) ;
  • Objets (d'autres blocs entre accolades imbriqués à l'intérieur) ;
  • null, la valeur spéciale qui indique l'absence de données.

Quant aux chaînes de caractères, elles peuvent être de tout type. Le standard ECMA actuel indique que :

« La syntaxe JSON n'impose aucune restriction sur les chaînes utilisées comme noms, n'exige pas que les chaînes de noms soient uniques et n'attribue aucune signification à l'ordre des paires nom/valeur. »

Le format JSON dans les API REST

Comme il s'agit d'un format léger, lisible par les humains (human readable text) et pris en charge par les principaux langages de programmation, le JSON est devenu le format de données par défaut des API REST, mais aussi des fichiers de configuration et de plusieurs bases de données, comme MongoDB et PostgreSQL. En somme, il est utilisé partout où deux programmes échangent des données structurées.

Dans les API REST en particulier, le serveur envoie du JSON dans le corps de la réponse et l'identifie avec l'en-tête Content-Type: application/json. 

Dans ce contexte, le format est utilisé de manière asymétrique selon l'opération :

  • Dans les requêtes de lecture (GET), les paramètres de recherche transitent généralement dans l'URL et le serveur répond en renvoyant un payload JSON ;
  • Dans les requêtes d'écriture comme POST, PUT ou PATCH, en revanche, le client envoie un payload JSON directement dans le corps de la requête pour créer ou mettre à jour une ressource sur le serveur.

Dans les deux cas, le corps (body) des messages échangés entre client et serveur est entièrement structuré dans ce format.

Qu’est-ce que le JSON ?
Partager sur