Curious TechieDev Toolbox
Tous les Guides/Formats de Données8 min read

Qu’est-ce que le JSON ? Spécification Technique RFC 8259

Types de données, syntaxe formelle, validation AST, subtilités de sérialisation et pièges courants.

Points Clés
  • Le format JSON est standardisé par la RFC 8259 pour les échanges de données textuelles légères.
  • Il intègre 6 types : Chaîne, Nombre, Booléen, Null, Objet et Tableau.
  • Les clés doivent impérativement être encapsulées entre guillemets doubles ("cle").
  • Les virgules finales (trailing commas) provoquent des erreurs de parsing immédiates.
  • JSON ne différencie pas formellement les entiers des flottants.

Chaque application web moderne, microservice cloud et API mobile s’appuie sur un langage numérique universel pour échanger des structures de données. Ce format incontournable est le JSON (JavaScript Object Notation).

1. Introduction et Historique

Le format JSON a été popularisé au début des années 2000 par Douglas Crockford comme alternative légère et limpide face à la verbosité de XML. Bien qu’inspiré de la notation objet de JavaScript, JSON est strictement indépendant de tout langage et standardisé par les normes RFC 8259 et ECMA-404.

2. Les 6 Types de Données Fondamentaux

La spécification JSON ne reconnaît que six types de données primitifs. Tout contenu incluant un autre type est formellement invalide :

Objet (Object) :{ "userId": 101, "role": "admin" }
Tableau (Array) :[ "production", "staging", "dev" ]
Chaîne (String) :"Texte Unicode entre guillemets doubles"
Nombre (Number) :42, 3.14159, -17, 1.2e5
Booléen (Boolean) :true, false
Nul (Null) :null

3. Règles Strictes de Syntaxe et Grammaire

Contrairement aux moteurs JavaScript permissifs, les parseurs JSON appliquent une grammaire impitoyable :

  • Guillemets Doubles Obligatoires : Les clés d’objets et chaînes de caractères doivent obligatoirement être délimitées par des guillemets doubles ("cle"). Les apostrophes simples ('cle') provoquent une erreur immédiate.
  • Aucune Virgule Traînante (Trailing Comma) : Les virgules agissent strictement comme séparateurs d’éléments. Une virgule finale après le dernier élément rend le JSON invalide.
  • Commentaires Prohibés : La norme officielle JSON interdit formellement les commentaires // ou /* */.

4. Analyse par Arbre Syntaxique Abstrait (AST)

Lors de l’exécution de JSON.parse(), un analyseur lexical déterministe convertit les tokens bruts en un Arbre Syntaxique Abstrait (AST) en mémoire vive. Le parseur valide la parité des accolades et les paires de substitution UTF-8 avant d’instancier les objets natifs.

5. Comparatif : JSON vs XML et YAML

Tandis que XML excelle dans les environnements documentaires à schémas stricts (XSD) et que YAML s’impose pour les configurations DevOps, JSON demeure la référence absolue pour les API web à fort trafic grâce à sa faible surcharge de sérialisation et sa rapidité d’exécution native.

6. Sécurité et Bonnes Pratiques

N’utilisez jamais eval() pour désérialiser une chaîne JSON provenant d’une source non vérifiée. Utilisez systématiquement la méthode native JSON.parse(), qui garantit un parsing sécurisé sans exécution arbitraire de code.