Si vous avez déjà créé un site web, appelé une API ou jeté un coup d'œil dans un fichier package.json, vous connaissez déjà JSON. Ça signifie JavaScript Object Notation, et c'est essentiellement le langage universel que les applications utilisent pour communiquer entre elles. Ne vous laissez pas tromper par le « JavaScript » — JSON fonctionne avec pratiquement tous les langages de programmation.
Décortiquons tout ça en termes simples, avec plein d'exemples en chemin.
Un petit cours d'histoire
JSON a été créé par Douglas Crockford au début des années 2000. Il voulait quelque chose de plus simple que XML pour échanger des données entre navigateurs et serveurs. L'idée a vite pris — JSON a été officiellement standardisé en tant que ECMA-404 en 2013, puis en tant que RFC 8259 en 2017.
Aujourd'hui, plus de 90% des API web utilisent JSON. Il n'est pas près de disparaître.
À quoi ressemble JSON ?
Voici un exemple simple — un objet JSON représentant une personne :
Plutôt lisible, non ? C'est tout l'intérêt. Regardons les règles qui rendent tout ça possible.
Les règles de syntaxe (elles sont simples, promis)
Types de données : JSON vous donne six briques de base : les chaînes (toujours entre guillemets doubles), les nombres, les booléens (true/false), null, les objets et les tableaux. C'est tout — pas de dates, pas de fonctions, pas de types spéciaux.
Objets : Ce sont vos paires clé-valeur, entre accolades {}. Les clés doivent être des chaînes entre guillemets doubles. Voici un exemple d'objet imbriqué :
Tableaux : Des listes ordonnées entre crochets []. Ils peuvent contenir n'importe quel mélange de types :
Un piège courant : JSON n'autorise pas les virgules en fin de ligne. Donc {"name": "Sam",} va casser votre parseur. Ça piège beaucoup de gens venant de JavaScript, où les virgules finales sont parfaitement acceptées.
Pourquoi les développeurs adorent JSON
Il y a plusieurs raisons pour lesquelles JSON a gagné la guerre des formats de données :
- C'est ultra simple. Comparez
{"name": "Jo"}avecJoen XML. Moins de frappe, moins de bruit. - Tous les langages le supportent. Python a
json.loads(), JavaScript aJSON.parse(), Go aencoding/json— vous voyez l'idée. Consultez la documentation JSON sur MDN pour le côté JavaScript. - Il est léger. Les payloads JSON sont typiquement 30 à 50% plus petits que l'équivalent XML. Ça compte quand vous envoyez des millions de réponses API par jour.
- Il se mappe naturellement au code. Un objet JSON ressemble presque exactement à un dictionnaire Python, un objet JavaScript ou un hash Ruby. Pas besoin de couche de traduction.
Où vous trouverez JSON dans la nature
- API web : Appelez presque n'importe quelle API REST et vous obtiendrez du JSON. Essayez vous-même — ouvrez votre navigateur et visitez
https://api.github.com/users/octocat. C'est du JSON. - Fichiers de configuration :
package.jsonpour Node.js,tsconfig.jsonpour TypeScript,settings.jsonpour VS Code — JSON est partout dans les outils de développement. - Bases de données : MongoDB stocke les données en BSON (JSON binaire). PostgreSQL a des types de colonnes JSON natifs. Même MySQL a ajouté le support JSON.
- Échange de données : Les microservices communiquent presque toujours entre eux en JSON via HTTP.
JSON vs XML — La version courte
XML a toujours sa place (plus de détails dans notre article sur XML), mais pour la plupart du développement web, JSON l'emporte en lisibilité, taille de fichier et vitesse de parsing. Le seul domaine où XML brille ? Les données centrées sur les documents avec du contenu mixte, des schémas et des transformations.
Valider votre JSON
Même une toute petite erreur — une virgule manquante, un guillemet en trop ou une virgule finale — fera échouer complètement le parsing JSON. Il n'y a pas de « parsing partiel » avec JSON ; ça marche ou ça ne marche pas. C'est pourquoi des outils comme notre JSON Formatter et notre JSON Validator sont si pratiques. Collez votre JSON et vous verrez instantanément si quelque chose ne va pas.
Erreurs JSON courantes (et comment les corriger)
Après des années de travail avec JSON, voici les erreurs que je vois les développeurs faire encore et encore :
1. Guillemets simples au lieu de guillemets doubles. C'est du JavaScript valide, mais PAS du JSON valide :
2. Virgules finales. JavaScript les autorise, JSON non :
3. Commentaires. JSON n'a pas de syntaxe de commentaires. Si vous avez besoin de commentaires dans vos fichiers de configuration, envisagez JSONC (JSON with Comments, supporté par VS Code) ou passez à YAML.
4. Clés sans guillemets. En JavaScript, vous pouvez écrire {name: "Sarah"}, mais en JSON chaque clé doit être une chaîne entre guillemets : {"name": "Sarah"}.
5. Utilisation de undefined. Le undefined de JavaScript n'existe pas en JSON. Utilisez null à la place.
Travailler avec JSON dans différents langages
L'une des plus grandes forces de JSON est le support universel des langages. Voici à quoi ressemblent le parsing et la sérialisation dans les langages populaires :
Remarquez comme les API se ressemblent ? parse/loads pour lire, stringify/dumps pour écrire. La plupart des langages suivent ce même schéma.
Conseils de performance JSON
Quand vous travaillez avec de gros payloads JSON, la performance commence à compter. Voici quelques conseils pratiques :
- Minifiez pour la production. Supprimer les espaces du JSON peut réduire la taille du fichier de 10 à 30%. Notre JSON Minifier le fait en un clic.
- Utilisez des parseurs en streaming pour les gros fichiers. Si votre fichier JSON fait des centaines de mégaoctets, ne le chargez pas entièrement en mémoire. Des bibliothèques comme
JSONStream(Node.js) ouijson(Python) parsent de manière incrémentale. - Évitez les structures profondément imbriquées. Chaque niveau d'imbrication ajoute de la charge au parsing. Si vous vous retrouvez à imbriquer plus de 4-5 niveaux, envisagez d'aplatir votre modèle de données.
- Envisagez des alternatives binaires pour les cas extrêmes. Pour les systèmes à très haut débit, des formats comme MessagePack, BSON ou Protocol Buffers peuvent offrir des payloads 2 à 5 fois plus petits et un parsing plus rapide. Mais vous perdez la lisibilité humaine, c'est donc un compromis.
JSON dans la conception d'API réelles
Regardons comment les vraies API structurent leurs réponses JSON. Voici un patron courant pour les réponses d'API paginées :
Et voici un patron courant de réponse d'erreur :
Ces patrons sont tellement courants que vous les verrez dans presque toute API REST bien conçue. Suivre des conventions comme celles-ci rend votre API plus facile à comprendre pour les autres développeurs.
Référence rapide JSON
Voici un aide-mémoire de tout ce que vous pouvez mettre dans un document JSON :
| Type | Exemple | Notes |
| String | "hello" | Doit utiliser des guillemets doubles |
| Number | 42, 3.14, -1, 2.5e10 | Pas de zéros en tête, pas d'hexadécimal |
| Boolean | true, false | Minuscules uniquement |
| Null | null | Minuscules uniquement |
| Object | {"key": "value"} | Les clés doivent être des chaînes entre guillemets |
| Array | [1, 2, 3] | Peut mélanger les types |
Essayez par vous-même
Prêt à mettre ces connaissances en pratique ? Voici les outils que vous voudrez garder en favoris :
- JSON Formatter — Collez du JSON désordonné et obtenez-le joliment formaté avec une indentation correcte.
- JSON Validator — Vérifiez rapidement si votre JSON est syntaxiquement valide et obtenez des messages d'erreur clairs quand ce n'est pas le cas.
- JSON Minifier — Supprimez les espaces de votre JSON pour les payloads de production.
JSON peut sembler simple en surface, mais maîtriser ses subtilités et ses bonnes pratiques vous fera gagner d'innombrables heures de débogage. Maintenant, allez construire quelque chose de génial !