Le JSON, expliqué sans jargon
Le JSON (JavaScript Object Notation) circule partout sur le web francophone. Quand vous consultez votre solde sur l'appli du Crédit Mutuel, suivez un colis Colissimo ou réservez un TER sur l'application SNCF Connect, il y a presque toujours un petit document JSON qui voyage entre votre téléphone et un serveur.
Ce guide vise à vous faire comprendre le JSON sans détour : à quoi il sert, comment l'écrire, quels pièges éviter et comment le valider en quelques secondes.
Une définition accessible
Le JSON est un format texte qui sert à représenter des données structurées. Il est issu de la syntaxe des objets JavaScript, mais tous les langages sérieux le lisent aujourd'hui : Python, Java, PHP, Ruby, C#, Go, Rust et bien sûr JavaScript.
L'idée est simple : des paires "clé": valeur, regroupées entre accolades. Voici un produit de boutique en ligne :
{ "id": 12345, "nom": "T-shirt en coton bio", "taillesDisponibles": ["S", "M", "L"], "stock": 42, "soldes": true }
Pas de balises comme en XML, pas de séparateurs étranges. Juste des clés, des deux-points et des valeurs. C'est pour ça que le JSON a remplacé XML pour la plupart des échanges de données.
Les types de données autorisés
Le JSON ne connaît que six types de valeurs : chaîne de caractères entre guillemets doubles, nombre (sans distinction entier/décimal), booléen (true ou false), null pour l'absence, tableau entre crochets et objet entre accolades. C'est tout.
Pas de type date natif. Pour stocker la date d'une commande, on utilise une chaîne au format ISO 8601 : "2025-03-14T18:30:00Z". Pas de commentaires non plus. Si vous voyez des commentaires // ou /* */ dans un fichier .json, c'est en réalité du JSON5 ou du JSONC, des variantes que toutes les bibliothèques n'acceptent pas.
Les erreurs typiques des débutants
La plus fréquente : utiliser des apostrophes au lieu de guillemets doubles. Le JSON exige des guillemets doubles, pour les clés comme pour les valeurs textuelles. Autre classique : laisser une virgule après le dernier élément d'un tableau ou d'un objet. En JSON standard, ça casse le parsing.
Les clés sont toujours entre guillemets. En JavaScript on peut écrire { nom: "Camille" } mais en JSON il faut { "nom": "Camille" }. Pour les très grands nombres (numéro SIRET, numéro de sécu), préférez la chaîne de caractères : les entiers au-delà de 2^53 perdent en précision.
Valider du JSON en quelques secondes
Quand une API renvoie une erreur cryptique, c'est presque toujours une virgule mal placée. La méthode rapide consiste à coller votre JSON dans un validateur. Notre formateur en ligne indique la ligne exacte du problème et réécrit le document avec une indentation lisible.
En ligne de commande, jq reste l'outil de référence : jq . commande.json détecte les erreurs et affiche le résultat coloré. En Python, json.tool fait l'équivalent. En Node, JSON.parse lève une exception en pointant le caractère fautif.
Performance et bonnes pratiques
Un JSON volumineux a un coût. Si votre API renvoie dix mille produits d'un coup, le navigateur doit tout parser avant d'afficher quoi que ce soit. Pensez à paginer (?page=1&parPage=50), à activer la compression gzip ou brotli côté serveur, et à ne renvoyer que les champs utiles au client.
Pour des données très répétitives, des formats comme NDJSON (un JSON par ligne) ou MessagePack peuvent être plus efficaces. Mais dans 95 % des cas, un JSON bien structuré servi avec gzip suffit largement.
Outils associés
Questions fréquentes
- Quelle différence entre JSON et objet JavaScript ?
- Un objet JavaScript vit en mémoire et peut contenir des fonctions, des dates ou des références. Le JSON est seulement du texte qui représente des données : pas de fonctions, pas de date native, pas d'undefined. Pour envoyer un objet sur le réseau, on le convertit avec JSON.stringify.
- Le JSON est-il sensible à la casse ?
- Oui. "Nom" et "nom" sont deux clés différentes. La convention dans l'écosystème JavaScript est le camelCase ("dateCreation"). En Python on voit souvent du snake_case ("date_creation"). Choisissez une convention et tenez-vous-y.
- Comment gérer les accents et les caractères spéciaux ?
- Le JSON accepte nativement UTF-8, donc "café", "œuvre" ou "garçon" fonctionnent sans rien faire. Vous verrez parfois des séquences comme \u00e9 : c'est la forme échappée et elle signifie la même chose. Vérifiez que votre serveur envoie l'en-tête Content-Type: application/json; charset=utf-8.
- Puis-je utiliser le JSON pour configurer mon application ?
- Oui, mais réfléchissez à votre besoin. Si vous voulez des commentaires ou des variables, YAML ou TOML seront plus confortables. Pour de simples paires clé-valeur, le JSON convient parfaitement et tous les langages le lisent sans dépendance externe.
- Existe-t-il une taille maximale recommandée ?
- Pas de limite officielle. Au-delà du mégaoctet, le parsing devient sensible sur mobile. Si votre réponse dépasse ce seuil, il vaut mieux paginer ou ne renvoyer que les champs réellement consommés par le client.