Spécifications

JSON
Forum
Posez vos questions, ici

6.JSON ou JavaScript Object Notation

6.1.Introduction

La notation JSON n'est pas une représentation propre au langage Javascript mais elle y est couramment associé ne serait-ce que de part son nom (JavaScript Object Notation soit Notation objet pour Javascript).
Cette notation permet de sérializer (partiellement) des objets et tableaux. C'est à dire les "transformer" en chaînes de caractères qui pourront être transférées facilement d'un langage à l'autre, sur le reseau, etc. pour être traitées dans un autre environnement que celui d'origine (après désérialisation).

6.2.La notation en 2 mots

Pour résumer, les tableaux sont transcrits sous forme d'une chaîne de caractères délimitée par des crochets. Cette chaîne contient l'ensemble des valeur (entre guillemets pour les chaînes de caractères) séparées par des virgules.
Ainsi le tableau (notation PHP)
array("JSON", 2)
sera représenté par la chaîne de caractères ["JSON", 2]
Et les objets (ou les tableaux associatifs) sont transcrits sous forme d'une chaîne de caractères délimitée par des accolades. Cette chaîne contient l'ensemble des variables membres (nom/valeur) séparés par des virgules. Le variables membres sont représentés par la concaténation du nom de la variable (entre guillemets), le caractère deux-points suivi de la valeur (entre guillemets pour les chaînes de caractères).
Ainsi l'objet schématisé ci-dessous
MonObjet {
    nom = "JSON";
    langage = "Javascript";
    version = 2;
}
ou encore le tableau associatif (notation PHP)
array("nom" => "JSON", "langage" => "Javascript", "version" => 2);
seront représentés par la chaîne de caractères {"nom":"JSON","langage":"Javascript","version":2}

6.3.Pourquoi faire?

Il est certainement possible de trouver diverses utilisations possibles de la notation JSON mais en pratique elle est utilisée pour passer aisement une multitude de paramètres à une fonction mais avec un seul argument. Comme dans le schéma suivant:
afficheMsg({"msg":"Erreur ligne 2", "couleur":"rouge", "police":"12pt"})
Il est alors possible d'avoir un grand nombre de paramètres optionnels. Il est possible de les passer dans un ordre quelconque, etc.
Pour être plus précis encore, cette notation est particulièrement pratique lors de l'utilisation de callbacks (fonctions dont le nom est passé en argument d'un traitement pour être appelée au cours ou à la fin du traitement). Avec la notation JSON, il est possible de ne pas avoir à ce soucier du nombre d'arguments de la callback en regroupant tous les paramètres "optionnels" dans un seul argument au format JSON.
Sachant que les callbacks jouent généralement un rôle important dans la programmation AJAX, on comprend aisément toute l'attention portée à la notation JSON.