L’acronyme JSON est dérivé de l’expression anglaise JavaScript Object Notation, qui peut se traduire par JavaScript Object Notation. Il s’agit d’un format texte léger qui permet l’échange de données.
JSON est basé sur un sous-ensemble de JavaScript, un langage de programmation impératif, orienté objet et interprété, créé par l’américain Brendan Eich. Cependant, il reste indépendant de cette langue.
A l’origine, JSON est apparu comme une alternative au XML (eXtensible Markup Language), une balise méta-langage. En raison de sa lisibilité rapide et de sa taille réduite, JSON a été rapidement accepté.
Pour l’être humain, lire et écrire JSON sont des actions assez simples. Les ordinateurs, quant à eux, n’ont aucune difficulté à le générer et à l’interpréter. C’est pourquoi il est souvent utilisé pour la transmission de données dans les applications web.
Cette simplicité dans la lecture de JSON se reflète aussi dans ce que signifie écrire un analyseur pour ce format. Un autre nom donné à l’analyseur est analyseur syntaxique, et c’est un programme informatique qui est développé dans le but d’analyser une chaîne de symboles prenant en compte certaines règles de grammaire formelle.
En bref, JSON est un format de données basé sur un texte qui respecte la syntaxe de l’objet JavaScript. Malgré sa similitude avec la syntaxe d’objet littérale de ce langage, il peut être utilisé indépendamment de JavaScript.
Une collection de paires nom-valeur et une liste ordonnée de valeurs sont les structures qui composent le format. Dans JSON, chaque objet est un ensemble désordonné de paires nom-valeur. Les noms, quant à eux, sont des chaînes de caractères (séquences de zéro ou plus de caractères Unicode), tandis que les valeurs sont des chaînes de caractères, des booléens, des valeurs nulles, des nombres, des objets ou des tableaux. Ces tableaux, d’autre part, sont des séquences ordonnées de valeurs ou d’objets de tout type, qui sont entre crochets et séparés par des virgules.
Une valeur nulle sert à indiquer, par exemple, qu’une variable n’a pas été initialisée. Ce n’est pas la même chose que le « zéro » lui-même, comme si nous disions qu' »il n’y a pas de pommes sur la table », mais plutôt que « l’objet pomme n’existe pas, il n’a pas été initialisé et l’ordinateur ne peut le traiter car il ne le sait pas ». Les booléens sont utilisés pour représenter deux valeurs : true et false.
Étant donné que d’autres alternatives, telles que XML, ne sont pas toujours désavantagées par rapport à JSON, il existe dans de nombreux cas un équilibre entre les différences entre les deux. L’un des problèmes qui préoccupent de nombreux développeurs est la sécurité de la manipulation des données avec JSON, et donc son utilisation la plus courante est dans les environnements avec un grand flux de données entre les deux extrémités (le client et le serveur), et où la source de ces données est fiable, en plus de ne pas être nécessaire pour traiter ou transformer sur l’ordinateur du client.
Parmi les entreprises qui utilisent JSON figurent Google, Mozilla et Yahoo, trois géants de l’industrie qui manipulent une quantité incalculable de données chaque jour pour répondre aux besoins de leurs millions de clients. Il y a ceux qui considèrent JSON comme une option pour ceux qui ne veulent pas ou ne peuvent pas utiliser XML ; cependant, les cas où les deux sont combinés dans la même application sont courants.
En ce qui concerne la prononciation du nom JSON, en anglais, il tend à se lire comme le nom Jason, bien que son créateur, Douglas Crockford, dit que la syllabe tonique devrait être la seconde (« son »). En français, il y a deux tendances : /yeison/, c’est ainsi que nous prononçons le nom Jason, ou /jotasón/, en lisant le nom de la lettre J et ensuite la syllabe « fils » normalement.