fantasticode.fr
Image default

Comprendre le format JSON en programmation

En bref

Le JSON (JavaScript Object Notation) est le format standard dans lequel les programmes s’échangent des données : un texte structuré en paires clé-valeur — { « ville »: « Lyon », « temperature »: 21 } — assez simple pour être lu par un humain, assez rigoureux pour être compris par toutes les machines. Pense au bordereau d’expédition international : une fiche standardisée dont chaque case est étiquetée, que n’importe quel transporteur de n’importe quel pays sait remplir et lire. Toute la syntaxe tient en cinq minutes : des accolades pour les objets, des crochets pour les tableaux, des clés toujours entre guillemets doubles, des valeurs qui peuvent être du texte, des nombres, vrai/faux, null — et de l’imbrication à volonté. Né dans l’écosystème JavaScript mais adopté par tous les langages, le JSON est aujourd’hui la langue des API, des fichiers de configuration et des échanges web : savoir le lire et l’écrire est un prérequis universel.

Ouvre les coulisses de n’importe quelle application moderne et tu le verras circuler partout : dans les réponses des API, les fichiers de configuration, les sauvegardes de jeux. Le JSON est la langue commune des échanges de données — et sa grammaire complète s’apprend en un quart d’heure, un rapport effort-rentabilité imbattable. Comprendre le format JSON — sa logique, sa syntaxe, ses gestes de lecture-écriture — clôt en beauté cette série de concepts, dans la lignée de notre guide complet pour apprendre à coder.

Le JSON, expliqué avec les mains

Le problème d’abord : deux programmes — écrits dans des langages différents, tournant sur des machines différentes — doivent s’échanger des données structurées ; comment se comprendre ? La solution est celle du commerce international : le bordereau standardisé — une fiche dont le format est convenu une fois pour toutes, cases étiquetées, remplissage codifié, que l’expéditeur japonais et le transporteur brésilien lisent sans se connaître. Le JSON est ce bordereau : un texte (donc transportable partout — dans une réponse réseau, un fichier, un message) qui décrit des données selon des règles si simples et si strictes que chaque langage sait le produire et le relire sans ambiguïté.

Sa logique interne t’est déjà familière, car elle marie deux structures que tu connais. L’objet — entre accolades — est un jeu d’étiquettes : des paires clé-valeur (« ville »: « Lyon ») où chaque information porte son nom, cousin direct des attributs d’objets et des dictionnaires que tu croiseras partout. Le tableau — entre crochets — est la liste ordonnée que tu connais depuis le casier à cases numérotées. Et le coup de génie : les deux s’imbriquent à volonté — un objet contenant un tableau d’objets contenant des objets… — de quoi décrire n’importe quelle donnée du monde réel : un client et ses commandes, une playlist et ses titres, la météo d’une semaine. Un bordereau, deux structures, imbrication libre : tu tiens déjà toute la philosophie.

À quoi ça ressemble dans le code

La grammaire complète, maintenant — elle tient en un paragraphe. Un document JSON typique : { « prenom »: « Sami », « age »: 25, « actif »: true, « langages »: [« Python », « JavaScript »], « adresse »: { « ville »: « Lyon », « cp »: « 69001 » } }. Lis-le case par case : des clés toujours entre guillemets doubles, deux-points, puis la valeur — qui peut être du texte (entre guillemets doubles aussi), un nombre (sans guillemets), les booléens true/false, le vide officiel null, un tableau entre crochets, ou un objet imbriqué entre accolades — les éléments séparés par des virgules. C’est TOUT : six types de valeurs, deux structures, trois signes de ponctuation — la grammaire intégrale d’un format qui fait tourner le web.

Les gestes de lecture-écriture, ensuite — deux par langage, symétriques. En JavaScript (dont le JSON est l’enfant, son nom le dit : JavaScript Object Notation) : JSON.parse(texte) transforme le bordereau reçu en objet vivant — donnees.adresse.ville livre « Lyon » par la notation au point — et JSON.stringify(objet) fait l’inverse, emballant tes données en texte prêt à expédier ; le duo que tu utiliseras dès tes premières consommations d’API, où le JSON est la langue des réponses. En Python : import json, puis json.loads(texte) pour lire (le bordereau devient un dictionnaire : donnees[« adresse »][« ville »]) et json.dumps(objet) pour écrire — les mêmes gestes, pratiqués dès les bases du Python. Tous les autres langages offrent leur paire équivalente : le bordereau est universel, c’est sa raison d’être — et celle de sa présence dans les API que tu créeras comme dans celles que tu consommes.

Les pièges classiques (et comment les éviter)

Piège 1 : la ponctuation traîtresse. Une virgule après le dernier élément, une clé entre guillemets simples, un commentaire glissé dans le fichier : le JSON strict refuse tout — c’est le prix de l’universalité, et la source de 90 % des « erreur de parsing ». Le remède : un validateur (ton éditeur en intègre un, des services en ligne aussi) qui pointe la ligne fautive en une seconde — réflexe à prendre dès le premier fichier de configuration récalcitrant. Piège 2 : confondre le texte et l’objet. Le JSON reçu d’une API est un texte — tenter donnees.ville dessus avant le parse échoue ; symétriquement, envoyer un objet brut sans stringify n’expédie rien de valide. Le remède : à la frontière du programme, toujours le geste de douane — parse en entrant, stringify en sortant.

Piège 3 : présumer du contenu. Le bordereau d’une cuisine externe peut arriver incomplet — la clé absente, la valeur null — et donnees.adresse.ville sur une adresse manquante plante la fête. Le remède : vérifier avant de se servir (la clé existe-t-elle ?), prévoir les valeurs par défaut — la robustesse de base de tout code qui mange du JSON d’autrui. Piège 4 : tout mettre au JSON. Le format excelle pour l’échange et la configuration — pas pour les données massives interrogées en tous sens, territoire des bases de données, ni pour les documents mis en forme. Le bon outil au bon endroit, comme toujours. Et voilà : la fiche standardisée n’a plus de secret — tu sais la lire, l’écrire, la valider et t’en méfier juste ce qu’il faut. Ce savoir discret est un sésame quotidien du métier : des fondations JavaScript aux échanges entre serveurs, le bordereau t’accompagnera désormais partout — et tu le reconnaîtras au premier coup d’œil, accolades ouvertes.

Questions fréquentes

C’est quoi le JSON, en une phrase ?

Le format texte standard dans lequel les programmes s’échangent des données structurées : des paires clé-valeur entre accolades, des listes entre crochets, imbricables à volonté — assez simple pour un humain, assez strict pour toutes les machines. C’est la langue des API et des fichiers de configuration.

Que signifie JSON ?

JavaScript Object Notation : la notation des objets de JavaScript, dont le format est issu — avant de devenir un standard indépendant adopté par tous les langages. Python, Java, PHP ou C++ le lisent et l’écrivent aussi naturellement que JavaScript : son origine est un héritage, plus une limite.

Quelle différence entre JSON.parse et JSON.stringify ?

Ce sont les deux gestes de douane symétriques de JavaScript : parse transforme un texte JSON reçu en objet utilisable dans le code (lecture), stringify transforme un objet du code en texte JSON prêt à envoyer ou sauvegarder (écriture). En Python, la paire équivalente s’appelle json.loads et json.dumps.

Pourquoi mon JSON est-il invalide ?

Presque toujours pour l’une de ces raisons : une virgule après le dernier élément d’une liste ou d’un objet, des guillemets simples au lieu des doubles autour des clés ou des textes, un commentaire (interdit en JSON strict) ou une accolade mal fermée. Un validateur — intégré à l’éditeur ou en ligne — pointe la ligne fautive instantanément.

Sources

Cet article a une vocation informative et pédagogique. Les plateformes, outils et formations éventuellement cités le sont à titre d’exemple ; compare plusieurs options avant de t’engager ou de payer.