|
Présentation de JSON
|
JSON (JavaScript Object Notation – Notation Objet issue de JavaScript)
est un format léger d'échange de données. Il est facile à lire ou à écrire pour des humains.
Il est aisément analysable ou générable par des machines. Il est basé sur un sous-ensemble du
langage de programmation JavaScript
(JavaScript
Programming Language, Standard ECMA-262 3rd Edition - December 1999). JSON est un format texte
complètement indépendant de tout langage, mais les conventions qu'il utilise seront familières à
tout programmeur habitué aux langages descendant du C, comme par exemple : C lui-même, C++, C#,
Java, JavaScript, Perl, Python et bien d'autres. Ces propriétés font de JSON un langage d'échange
de données idéal.
- objet
- {}
{ membres }
- membres
- chaîne : valeur
membres , chaîne :
valeur
- tableau
- []
[ éléments ]
- éléments
- valeur
éléments , valeur
- valeur
- chaîne
nombre
objet
tableau
true
false
null
- chaîne
- ""
" caractères "
- caractères
- caractère
caractères caractère
- caractère
- tout-Unicode-sauf-"-ou-\-ou-contrôle
\"
\\
\/
\b
\f
\n
\r
\t
\u quatre-chiffres-hexa
- nombre
- entier
entier frac
entier exp
entier frac exp
- entier
- chiffre
chiffre1-9 chiffres
- chiffre
- chiffre1-9 chiffres
- frac
- . chiffres
- exp
- e chiffres
- chiffres
- chiffre
chiffres chiffre
- e
- e
e+
e-
E
E+
E-
JSON se base sur deux structures :
- Une collection de couples nom/valeur. Divers langages la réifient par un
objet, un enregistrement, une structure, un dictionnaire, une table de
hachage, une liste typée ou un tableau associatif.
- Une liste de valeurs ordonnées. La plupart des langages la réifient par un
tableau, un vecteur, une liste ou une suite.
Ces structures de données sont universelles. Pratiquement tous
les langages de programmation modernes les proposent sous une forme ou une autre.
Il est raisonnable qu'un format de données interchangeable avec des langages de
programmation se base aussi sur ces structures.
En JSON, elles prennent les formes suivantes :
- Un objet, qui est un ensemble de couples nom/valeur non ordonnés. Un objet
commence par { (accolade gauche) et se termine par } (accolade
droite). Chaque nom est suivi de : (deux-points) et les
couples nom/valeur sont séparés par , (virgule).
- Un tableau est une collection de valeurs ordonnées. Un tableau commence
par [ (crochet gauche) et se termine par ] (crochet
droit). Les valeurs sont séparées par , (virgule).
- Une valeur peut être soit une chaîne de caractères entre guillemets,
soit un nombre, soit true ou false ou null, soit un
objet soit un tableau. Ces structures peuvent être imbriquées.
- Une chaîne de caractères est une suite de zéro ou plus caractères Unicode,
entre guillemets, et utilisant les échappements avec antislash. Un caratère est représenté
par une chaîne d'un seul caractère.
Mis à part quelques détails d'encodage, voilà qui décrit le langage dans son
intégralité.

Une chaîne de caractères est très proche de ses équivalents en C ou en Java. Un nombre
est très proche de ceux qu'on peut rencontrer en C ou en Java, sauf que les formats octal et hexadécimal
ne sont pas utilisés.

De l'espace blanc est autorisé entre tous lexèmes.
json@JSON.org