Bonjour,
Pour les besoins d'un tutoriel j'ai besoin de définir la grammaire du JSON.
Pendant que je la rédigeais, un détail m'a chiffonné.
Sur le site du JSON on donne la définition suivante :
J'en ai donc déduit la grammaire suivante :Envoyé par http://www.json.org/
Code EBNF : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Object = LEFT_BRACE, [SetOfPairs], RIGHT_BRACE; SetOfPairs = Pair, {COMMA, Pair}; Pair = String, COLON, Value; LEFT_BRACE = "{"; RIGHT_BRACE = "}"; COMMA = ","; COLON = ":";
Pourtant la grammaire donnée sur le site est la suivante :
Code EBNF : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Object = LEFT_BRACE, [Members], RIGHT_BRACE; Members = Pair, [COMMA, Members]; Pair = String, COLON, Value; LEFT_BRACE = "{"; RIGHT_BRACE = "}"; COMMA = ","; COLON = ":";
Le SetOfPairs a changé pour devenir Members. Ce n'est qu'un nommage, rien de bien méchant.
Ce que je ne comprends pas, c'est pourquoi la liste de Pair a été transformée en cet appel récursif à Members.
J'ai fait différents scénario sur papiers avec différents JSON.
Au final, les deux grammaires fonctionnent alors pourquoi cette transformation ?
Y'a t-il un détail qui m'échappe ?
Idem pour l'Array avec les "Elements" ?
Partager