JSON (JavaScript Object Notation) est un format texte léger pour stocker et échanger des données structurées. Il propulse la grande majorité des APIs web, la plupart des fichiers de configuration et d’innombrables bases de données. Si vous avez déjà vu une réponse d’API REST ou ouvert un fichier package.json, vous avez lu du JSON. Ce guide explique précisément ce qu’est JSON, à quoi ressemble le format et pourquoi il est devenu la lingua franca de l’échange de données.
Qu’est-ce que JSON ?
JSON signifie JavaScript Object Notation. Il a été créé par Douglas Crockford au début des années 2000 comme alternative plus simple à XML pour échanger des données entre un serveur web et un navigateur. Malgré le « JavaScript » dans le nom, JSON est indépendant du langage —— tous les langages majeurs embarquent un parser JSON intégré.
Le format est défini par deux standards internationaux : la RFC 8259 de l’IETF (histoire et changements clés) et l’ECMA-404 d’Ecma International. Les deux disent la même chose : JSON est une séquence de caractères Unicode représentant l’un des six types de données, encodée en UTF-8.
Les six types de données de JSON
JSON supporte exactement six types de valeurs. Les comprendre, c’est la base pour comprendre le format JSON.
1. Objet (Object)
Une collection non ordonnée de paires clé–valeur entre accolades. Les clés doivent être des chaînes (entre guillemets doubles). Les valeurs peuvent être de n’importe quel type JSON.
{
"name": "Alice",
"age": 30,
"active": true
}2. Tableau (Array)
Une liste ordonnée de valeurs entre crochets.
["apple", "banana", "cherry"]3. Chaîne (String)
Une séquence de caractères Unicode encadrée par des guillemets doubles. Les guillemets simples ne sont pas du JSON valide.
"Hello, world!"4. Nombre (Number)
Un entier ou un nombre à virgule flottante. JSON n’a pas de types distincts pour les entiers et les flottants —— juste number. Pas de guillemets, pas de littéraux hex, pas de NaN ni Infinity.
42
3.14
-7
1.5e105. Booléen (Boolean)
Exactement true ou false, en minuscules. JSON n’accepte pas True, False, yes, no, 1 ou 0 comme booléens.
true
false6. Null
Représente l’absence de valeur. Écrit null en minuscules.
nullQu’est-ce qu’un fichier JSON ? (et le format .json)
Un fichier JSON (parfois tapé jason file) est un fichier texte brut contenant une seule valeur JSON —— généralement un objet ou un tableau. Le format .json est simplement du texte UTF-8 conforme à la RFC 8259, avec l’extension .json par convention. Étant du texte brut, vous n’avez pas besoin d’un visualiseur spécial.
Comment ouvrir un fichier JSON (ou .json) : n’importe quel éditeur de texte fait l’affaire —— VS Code, Notepad, TextEdit, Sublime, nano. La même question revient sous différentes formes —— how to open json files, how to open a .json file, how do i open a json file, how do you open a json file ou simplement open json file —— et la réponse est la même : ouvrez-le comme du texte. Pour une vue plus lisible, collez le contenu dans le Visualiseur JSON pour un arbre repliable, ou dans l’outil JSON Fix pour le formater. Sur macOS et Windows, double-cliquer sur un .json l’ouvre généralement dans l’éditeur de texte par défaut ; si ça tente de s’ouvrir dans le navigateur, faites un clic droit et choisissez « Ouvrir avec » pour sélectionner un éditeur. Pas besoin de décompresser quoi que ce soit —— les .json ne sont pas des archives compressées.
Comment créer un fichier JSON (aussi recherché comme « how to make a json file ») : ouvrez n’importe quel éditeur de texte, écrivez une seule valeur JSON valide (un objet, tableau, chaîne, nombre, booléen ou null) et enregistrez avec l’extension .json. C’est tout le processus —— pas d’en-tête, pas de déclaration de schéma, pas de marqueur d’encodage obligatoire en dehors d’UTF-8. Les programmes le lisent comme du JSON dès qu’ils reconnaissent l’extension. Un petit json file example : { "name": "Ada", "active": true }.
Qu’est-ce que le format JSON ? (et la requête connexe, why files are stored in json format) : le format JSON est un format texte petit, indépendant du langage, pour les données —— clés, valeurs, tableaux et objets, avec un ensemble fixe de types littéraux. Les fichiers sont stockés dans ce format parce que le même document peut être lu par Python, Go, Java, JavaScript, Rust et les bases de données sans traduction —— JSON est le plus petit dénominateur commun pour déplacer des données structurées entre systèmes.
// users.json
[
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]Fichiers JSON courants que vous avez probablement déjà vus :
package.json—— métadonnées et dépendances d’un projet Node.jstsconfig.json—— configuration du compilateur TypeScriptsettings.json—— préférences utilisateur de VS Codemanifest.json—— manifest d’extension de navigateur ou de PWA
Qu’est-ce que le format de données JSON ?
Le format de données JSON a quelques règles strictes qui le distinguent du code JavaScript qui lui ressemble :
- Toutes les clés doivent être des chaînes entre guillemets doubles.
{ name: "Alice" }est un littéral d’objet JavaScript, pas du JSON. - Les chaînes doivent utiliser des guillemets doubles.
{ "name": 'Alice' }n’est pas du JSON valide. - Pas de virgules finales.
{ "a": 1, }n’est pas du JSON valide. - Pas de commentaires.
// commentet/* block comment */ne sont pas autorisés en JSON. - Pas de
undefined. Leundefinedde JavaScript n’a pas d’équivalent JSON. Utiliseznullà la place.
JSON vs XML : pourquoi JSON a gagné (xml vs json)
JSON est-il la même chose que XML ? Non —— les deux transportent des données structurées, mais les deux formats sont distincts en forme, taille et machinerie. Avant que JSON ne s’impose, XML était le format standard d’échange de données. Les mêmes données dans les deux :
<!-- XML -->
<user>
<name>Alice</name>
<age>30</age>
</user>
// JSON
{ "name": "Alice", "age": 30 }JSON est plus compact, plus facile à lire pour un humain et nativement parsable en JavaScript sans bibliothèque tierce. Pour la plupart des cas —— réponses d’API, configuration, messagerie —— JSON demande significativement moins de bande passante et moins de code que XML.
Où JSON est utilisé
- APIs REST : l’en-tête
Content-Type: application/jsonmarque pratiquement toute réponse moderne d’API web. - Fichiers de configuration :
package.json,tsconfig.json,.eslintrc.json, templates AWS CloudFormation. - Bases de données : PostgreSQL, MySQL, MongoDB et DynamoDB supportent nativement le stockage et la requête de colonnes ou de documents JSON.
- Fichiers de log : le logging structuré (avec JSON Lines) rend les données parsables par des machines comme Elasticsearch.
- Communication inter-processus : microservices, files de messages (Kafka, RabbitMQ) et fonctions serverless utilisent JSON comme format de payload par défaut.
JSON dans les bases de données
La plupart des bases de données modernes peuvent stocker et requêter du JSON directement, donc un document n’a pas besoin de vivre dans un magasin documentaire séparé pour conserver sa structure :
- PostgreSQL —— deux types :
jsonstocke le texte exact ;jsonbstocke une représentation binaire indexable. Requête avec->/->>pour les champs et@>pour le containment ; indexez les chemins chauds avec un index GIN sur la colonnejsonb. - MongoDB —— les documents sont du JSON (BSON sur disque). Index par champ et pipelines d’agrégation complets travaillent directement sur la forme du document.
- SQLite —— l’extension JSON1 (intégrée dans SQLite moderne) fournit
json_extract,json_eachet des colonnes générées indexées à partir de champs JSON. - MySQL —— un type de colonne
JSONnatif plus expressions de chemin etJSON_TABLEpour joindre des valeurs JSON comme des lignes.
Deux rappels pratiques pour tous : les grands entiers peuvent perdre en précision en traversant le driver client, et la spec JSON ne définit pas d’ordre canonique des clés —— si vous avez besoin de comparaisons ou de hashing déterministes, utilisez RFC 8785 (JCS).
Erreurs JSON courantes
Même les développeurs expérimentés écrivent du JSON invalide. Les erreurs les plus courantes :
- Virgules finales après le dernier élément
- Guillemets simples à la place des doubles
- Clés sans guillemets
- Commentaires JavaScript dans le JSON
- Valeurs style Python comme
True,False,None
Si votre JSON ne parse pas, réparez-le instantanément en ligne —— l’outil corrige automatiquement ces problèmes et vous montre exactement ce qui a changé.
Parser du JSON en code
Tous les langages majeurs embarquent un support JSON intégré :
// JavaScript
const obj = JSON.parse('{"name":"Alice","age":30}');
console.log(obj.name); // "Alice"
# Python
import json
obj = json.loads('{"name":"Alice","age":30}')
print(obj['name']) # Alice
# Go
import "encoding/json"
var obj map[string]interface{}
json.Unmarshal([]byte(`{"name":"Alice","age":30}`), &obj)Comment lire un fichier JSON en Python (ou read json file in python) : utilisez json.load(open('data.json')) pour un chemin de fichier, ou json.loads(text) quand le JSON est déjà une chaîne. Les deux lèvent json.JSONDecodeError sur des erreurs de syntaxe.
Le choix de JSON plutôt que XML dans les systèmes modernes se résume souvent aux octets sur le réseau et au support du parser —— tous les langages supportent JSON nativement, alors que XML nécessite généralement une bibliothèque tierce.
Variantes JSON courantes que vous rencontrerez
Le JSON strict est la base, mais quelques dialectes étroitement liés reviennent régulièrement :
- JSONC (JSON avec commentaires) —— du JSON qui autorise les commentaires
//et/* */et les virgules finales.tsconfig.jsonet lesettings.jsonde VS Code l’utilisent. Les parsers standards le rejettent ; utilisez un parser conscient de JSONC ou retirez les commentaires d’abord. - NDJSON / JSON Lines —— une valeur JSON par ligne, séparées par
\n. Utilisé pour les logs en streaming, les datasets ML et les APIs massives. Parsez chaque ligne avecJSON.parse, pas le fichier entier. - JSON Pointer (RFC 6901) —— une syntaxe de chemin pour adresser une valeur dans un document, par ex.
/users/0/name. C’est le format de chemin utilisé par JSON Patch et par les$refde JSON Schema.
Questions fréquentes
Que signifie JSON ?
JSON signifie JavaScript Object Notation. Malgré le nom, il est indépendant du langage —— tous les langages majeurs peuvent le lire et l’écrire —— et il est défini par la RFC 8259 et ECMA-404.
Quels sont les types de données en JSON ?
Six : chaîne, nombre, booléen, null, objet et tableau. Pas de type entier séparé, pas de type date, pas de undefined. Voir Exemples de format JSON pour chacun en contexte.
JSON est-il la même chose qu’un objet JavaScript ?
Non. JSON est un format texte avec des règles strictes (clés entre guillemets doubles, pas de virgules finales, pas de commentaires) ; un littéral d’objet JavaScript est du code bien plus permissif. Voir JSON vs objets JavaScript.
Comment vérifier qu’un JSON est valide ?
Parsez-le avec JSON.parse() (lève sur entrée invalide) ou suivez Comment valider du JSON et passez-le par un validateur. Pour imposer structure et types, décrivez-le avec JSON Schema.
Outils pour travailler avec JSON
- JSON Fix —— valide, répare et formate du JSON invalide instantanément
- Qu’est-ce que JSON Schema ? —— décrire et valider la structure des données JSON
- Comment formater du JSON —— pretty-print en JavaScript, Python, ligne de commande ou votre navigateur
- Exemples de format JSON —— exemples copiables couvrant chaque type de donnée et motif réel
- JSON Diff —— compare deux documents JSON et voyez ce qui a changé
- YAML vers JSON —— convertir de la configuration YAML au format JSON