2. JSON Grammar (Grammaire JSON)
Un texte JSON est une séquence de jetons. L'ensemble de jetons comprend six caractères structurels, des chaînes de caractères, des nombres et trois noms littéraux.
Un texte JSON est une valeur sérialisée. Notez que certaines spécifications précédentes de JSON contraignaient un texte JSON à être un objet ou un tableau. Les implémentations qui génèrent uniquement des objets ou des tableaux là où un texte JSON est demandé seront interopérables dans le sens où toutes les implémentations accepteront ceux-ci comme des textes JSON conformes.
JSON-text = ws value ws
Voici les six caractères structurels :
begin-array = ws %x5B ws ; [ left square bracket
begin-object = ws %x7B ws ; { left curly bracket
end-array = ws %x5D ws ; ] right square bracket
end-object = ws %x7D ws ; } right curly bracket
name-separator = ws %x3A ws ; : colon
value-separator = ws %x2C ws ; , comma
Les espaces blancs non significatifs sont autorisés avant ou après l'un des six caractères structurels.
ws = *(
%x20 / ; Space
%x09 / ; Horizontal tab
%x0A / ; Line feed or New line
%x0D ) ; Carriage return