JSON : définition et premier exemple
JSON signifie JavaScript Object Notation. Popularisé par Douglas Crockford au début des années 2000, il reprend la syntaxe de JavaScript et est normalisé par la RFC 8259 et la norme ECMA-404. Malgré son nom, JSON est indépendant de tout langage de programmation : pratiquement tous les langages savent le lire et l'écrire.
Un petit document JSON décrivant une personne :
{"name": "Ada Lovelace", "born": 1815, "languages": ["English", "French"], "mathematician": true, "spouse": null}
Les types de données JSON
| Type | Exemple | Remarques |
|---|---|---|
| Chaîne (string) | "Hello" | texte entre guillemets doubles, avec des échappements comme \n |
| Nombre (number) | 42, -3.14, 6.02e23 | pas de NaN, d'Infinity, d'hexadécimal ni de zéros initiaux |
| Booléen (boolean) | true, false | toujours en minuscules |
| Null | null | une valeur vide ou inconnue |
| Objet (object) | {"key": "value"} | paires nom/valeur ; les noms sont des chaînes |
| Tableau (array) | [1, 2, 3] | une liste ordonnée de valeurs de n'importe quel type |
JSON n'a pas de type date : les dates sont généralement écrites sous forme de chaînes ISO 8601 comme "2026-05-01T10:00:00Z".
Le format JSON : les règles de syntaxe
- Les données s'écrivent sous forme de paires nom/valeur :
"name": "Ada". - Les noms (clés) et les chaînes utilisent toujours des guillemets doubles, jamais des guillemets simples.
- Les éléments sont séparés par des virgules, sans virgule après le dernier élément.
- Les accolades
{ }contiennent les objets, les crochets[ ]les tableaux. - Les commentaires ne sont pas autorisés.
- Les espaces et sauts de ligne entre les éléments sont ignorés : les mêmes données peuvent donc être minifiées ou formatées.
- Un texte JSON contient une seule valeur de premier niveau et est encodé en UTF-8.
Qu'est-ce qu'un fichier JSON ?
Un fichier JSON est un fichier texte brut portant l'extension .json et contenant un document JSON. Son type de média est application/json, et il doit être enregistré en UTF-8. Les fichiers JSON typiques sont les exports de données d'applications et de sites web (par exemple Google Takeout ou les téléchargements de données des réseaux sociaux), les fichiers de configuration comme package.json, les réponses d'API enregistrées sur disque et les jeux de données destinés à l'analyse. Comme il s'agit de texte brut, un fichier JSON peut être ouvert sans risque : il ne peut pas exécuter de code.
Comment ouvrir un fichier JSON
| Où | Comment |
|---|---|
| Windows | Clic droit sur le fichier → Ouvrir avec → Bloc-notes, ou utilisez un éditeur de code comme VS Code. Vous pouvez aussi faire glisser le fichier dans une fenêtre de navigateur pour l'afficher. |
| Mac | Ouvrez-le avec TextEdit ou un éditeur de code, ou déposez-le dans une fenêtre de navigateur. |
| iPhone et Android | Ouvrez-le depuis l'app Fichiers dans une visionneuse de texte, ou chargez-le dans un visualiseur JSON en ligne : le nôtre fonctionne sur mobile et le fichier reste sur votre appareil. |
| Navigateur web | Firefox intègre un visualiseur JSON ; dans n'importe quel navigateur, un visualiseur JSON en ligne affiche les données sous forme d'arborescence repliable. |
| Excel | Sous Windows, utilisez Données → Obtenir des données → À partir d'un fichier → À partir d'un fichier JSON, ou convertissez d'abord le fichier avec l'outil JSON en CSV. |
JSON vs XML : quelles différences ?
| JSON | XML | |
|---|---|---|
| Syntaxe | accolades, crochets, paires nom/valeur | balises ouvrantes et fermantes |
| Types de données | chaîne, nombre, booléen, null, objet, tableau | texte uniquement, sauf si un schéma définit des types |
| Taille | compact | plus volumineux à cause des balises fermantes |
| Commentaires | non | oui |
| Attributs, espaces de noms | non | oui |
| Usage typique | API web, configuration, bases de données NoSQL | documents, fichiers bureautiques, SOAP et systèmes d'entreprise |
JSON dans les API et les applications
La plupart des API web envoient et reçoivent du JSON. Un client envoie une requête avec l'en-tête Content-Type: application/json, le serveur répond en JSON, et le programme transforme la réponse en objets natifs avec JSON.parse en JavaScript, json.loads en Python ou json_decode en PHP. JSON sert aussi aux fichiers de configuration comme package.json et tsconfig.json, aux bases de données orientées documents comme MongoDB et aux sorties structurées des modèles d'IA.
Erreurs JSON courantes
- Une virgule finale après le dernier élément :
[1, 2,] - Des guillemets simples ou des clés sans guillemets :
{'a': 1},{a: 1} - Des commentaires comme
// note - Une virgule ou un crochet manquant entre des éléments
- Des valeurs JavaScript ou Python comme
undefined,NaNouTrue
Collez vos données dans le validateur JSON pour voir la ligne et la colonne exactes du problème, ou laissez la fonction Réparer le corriger automatiquement.
JSON5, JSONC et JSON Lines
- JSON5 – un sur-ensemble plus souple pour les fichiers écrits à la main : commentaires, virgules finales, guillemets simples, clés sans guillemets et nombres hexadécimaux. Les parseurs JSON standard ne peuvent pas le lire.
- JSONC – du JSON avec commentaires, utilisé pour les paramètres de VS Code et
tsconfig.json. - JSON Lines / NDJSON (
.jsonl) – une valeur JSON par ligne, idéal pour les logs et le streaming de grands jeux de données. - GeoJSON – du JSON pour les entités géographiques, défini dans la RFC 7946.
Questions fréquentes
JSON est-il un langage de programmation ?
Non. JSON est un format de données : il décrit des données mais ne peut contenir ni logique, ni fonctions, ni commentaires.
JSON est-il la même chose qu'un objet JavaScript ?
Non. JSON est du texte qui ressemble à un littéral d'objet JavaScript, mais il est plus strict : les clés et les chaînes exigent des guillemets doubles, et les fonctions, undefined et les commentaires sont interdits. JSON.parse transforme ce texte en véritable objet.
Comment créer un fichier JSON ?
Écrivez les données dans n'importe quel éditeur de texte en respectant les règles ci-dessus, puis enregistrez le fichier en UTF-8 avec l'extension .json. Vérifiez-le avec un validateur JSON avant de l'utiliser.
Dernière mise à jour: