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 :
{ "userId": 101, "role": "admin" }[ "production", "staging", "dev" ]"Texte Unicode entre guillemets doubles"42, 3.14159, -17, 1.2e5true, falsenull3. 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.