JSON est le format d'échange de données dominant sur le web moderne. Simple en surface — une poignée de types primitifs, objets à clés chaînes, tableaux — sa rigueur piège pourtant les développeurs tous les jours. Ce guide parcourt la structure, les pièges de syntaxe qui échouent à la validation, quand formater vs minifier, et les variantes plus souples qu'on rencontre.

Structure JSON

Tout document JSON est un objet (entre { } avec des paires clé–valeur séparées par virgules) ou un tableau (entre [ ] avec des valeurs séparées par virgules). Les valeurs sont des chaînes (guillemets doubles), nombres, booléens (true/false), null, objets ou tableaux. Les clés doivent toujours être des chaînes entre guillemets doubles — pas de guillemets simples, pas d'identifiants nus.

Erreurs de syntaxe qui coûtent des heures

Pretty-print vs minifier

Le JSON formaté est pour les humains : indentation et sauts de ligne aident à lire la structure et comparer les valeurs. Utilisez-le pour la configuration, la documentation, les logs de debug. Le JSON minifié est pour les machines : tout sur une ligne, zéro espace, payload minimal. À utiliser quand le JSON passe par le réseau ou est stocké en masse. La plupart des outils basculent entre les deux en un appel (JSON.stringify(obj, null, 2) joli, JSON.stringify(obj) minifié).

JSON5 et JSONC

Quand on a besoin de commentaires et virgules finales, deux sur-ensembles courants. JSON5 autorise guillemets simples, clés non guillemetées, commentaires, virgules finales, hex, chaînes multi-lignes. JSONC — utilisé par VS Code — est plus strict : il ajoute seulement les commentaires au JSON standard. Aucun des deux n'est parsé universellement ; convertissez en JSON strict avant d'envoyer sur le réseau.

Taille et performance

Minifier du JSON formaté réduit la taille de 15–30 %. La compression gzip aplanit largement cette différence : pour du JSON servi en HTTP, gzip bat souvent la minification. Pour localStorage, IndexedDB, et les payloads mobiles contraints, la minification compte encore — chaque octet compte.

La validation en habitude

Quand un système rejette votre JSON, collez-le dans un validateur avant d'éditer. Neuf erreurs sur dix sont une virgule finale passée inaperçue, un guillemet simple accidentel, ou un caractère de contrôle glissé. Un validateur indique ligne et colonne exactes, épargnant la demi-heure d'inspection visuelle qu'on ferait sans lui.