Qu'est-ce que JSON ? Guide débutant, syntaxe et exemples
JSON est un format texte pour les données structurées. Règles de syntaxe, exemple, usage dans les API et comment le tester.
Qu'est-ce que JSON ?
JSON (JavaScript Object Notation) est un format texte pour les données structurées. Il construit ses valeurs avec des objets, des tableaux, des chaînes, des nombres, true, false et null. Tous les langages savent le lire et l'écrire, les humains aussi, et c'est le format par défaut du corps des requêtes et des réponses des API web. Son type de média est application/json.
Comment fonctionne JSON
Un document JSON est une valeur unique, le plus souvent un objet. Un objet est un ensemble de paires "clé": valeur entre accolades, un tableau est une liste ordonnée entre crochets, et les valeurs peuvent s'imbriquer sans limite. Le format est défini dans la RFC 8259, et MDN propose une bonne introduction pour débuter.
{
"id": 42,
"name": "Alice Johnson",
"active": true,
"tags": ["admin", "beta-tester"],
"address": { "city": "Berlin", "zip": "10115" },
"last_login": "2026-10-01T14:30:00Z",
"avatar": null
}JSON n'a pas de type date : les dates circulent sous forme de chaînes (ISO 8601 est le choix courant) et votre code les convertit.
Les règles de syntaxe qui piègent
- Les clés et les chaînes utilisent des guillemets doubles. Les guillemets simples sont invalides.
- Pas de virgule après le dernier élément.
- Pas de commentaires.
- Pas de
undefined,NaNniInfinity. Utiliseznullou retirez la clé. - Les nombres ne peuvent pas avoir de zéros en tête.
- Le texte échangé entre systèmes doit être en UTF-8.
Tout document JSON est un littéral JavaScript valide, mais l'inverse est faux : un objet JavaScript avec des clés sans guillemets ou une virgule finale n'est pas du JSON.
Lire et produire du JSON
Transformer du texte en données s'appelle l'analyse (désérialisation), transformer des données en texte, la sérialisation. Tous les langages courants l'incluent dans leur bibliothèque standard :
// JavaScript
const data = JSON.parse('{"id": 42}');
const text = JSON.stringify({ id: 42 });
# Python
import json
data = json.loads('{"id": 42}')
text = json.dumps({"id": 42})Pour lire à l'œil une réponse minifiée, collez-la dans l'outil gratuit de mise en forme JSON : elle ressort indentée.
JSON dans les API
La plupart des API REST échangent du JSON. Le client envoie Content-Type: application/json sur les requêtes avec un corps et le serveur répond avec le même en-tête. Ce que contient le corps est le payload de la requête ou de la réponse, et l'URL visée est le endpoint d'API.
POST /api/users HTTP/1.1
Content-Type: application/json
{ "email": "alice@example.com", "name": "Alice" }Vous pouvez envoyer exactement cette requête en ligne de commande avec l'outil curl en ligne. JSON est aussi le format de messages de JSON-RPC, un protocole qui appelle des méthodes distantes au lieu d'adresser des ressources.
Valider du JSON
Une syntaxe valide veut seulement dire qu'un analyseur peut lire le texte, pas que les données sont correctes. Un JSON Schema décrit quels champs sont obligatoires, de quel type ils sont et quelles valeurs sont permises, si bien qu'un validateur rejette un payload qui s'analyse très bien mais contient "age": "forty". Notre guide pas à pas de JSON Schema (en anglais) montre comment en écrire un.
Erreurs courantes avec JSON
- Construire du JSON par concaténation de chaînes. Un guillemet non échappé dans un nom casse le document. Sérialisez toujours avec une bibliothèque.
- Oublier l'en-tête Content-Type. Beaucoup de serveurs traitent alors le corps comme du texte brut ou un formulaire et répondent 400 ou 415.
- Envoyer de très grands entiers comme nombres. Certains analyseurs, JavaScript compris, perdent en précision sur de très grands entiers comme les identifiants 64 bits. Envoyez-les en chaînes.
- Compter sur l'ordre des clés. Les objets sont des ensembles de membres sans ordre. Ne vous appuyez pas sur un ordre précis.
- Changer des noms ou des types de champs sans prévenir. Un champ renommé est un changement incompatible pour tous les clients qui le lisent.
JSON, tests et supervision
Les problèmes de JSON se manifestent rarement par un plantage. Une réponse 200 peut contenir une liste vide ou un champ manquant. Quand vous testez une API, vérifiez le corps en plus du code de statut. La surveillance d'API de LoadFocus contrôle le code de statut, le corps de la réponse, les en-têtes et le temps de réponse selon un calendrier, toutes les 5 minutes avec l'offre gratuite : un payload cassé déclenche une alerte avant qu'un client ne le remarque.
Questions fréquentes sur JSON
Que signifie JSON ?
JSON signifie JavaScript Object Notation. Il est né de la syntaxe des objets JavaScript, mais c'est un format indépendant du langage.
JSON est-il un langage de programmation ?
Non. JSON ne fait que décrire des données. Il n'a ni variables, ni fonctions, ni logique : il faut un langage de programmation pour le produire et le lire.
Quelle différence entre JSON et un objet JavaScript ?
JSON est du texte, un objet JavaScript vit en mémoire. JSON est plus strict : les clés exigent des guillemets doubles, les commentaires et les virgules finales sont interdits, et les fonctions ou valeurs undefined ne peuvent pas être représentées.
JSON peut-il contenir des commentaires ?
Non. Le standard ne définit aucune syntaxe de commentaire. Pour des notes, utilisez un champ de documentation séparé ou un format pensé pour les fichiers de configuration.
Pourquoi les API utilisent-elles JSON plutôt que XML ?
JSON est plus court, correspond directement aux objets et tableaux de la plupart des langages et demande moins de code pour être analysé. XML reste préférable quand on mêle texte et balisage, comme dans les documents.
Termes associés
- Qu'est-ce que JSON-RPC ? Protocole, exemples, comparaison avec REST
- Qu'est-ce que multipart/form-data Content-Type ? Envoi de fichiers, exemples
- Qu'est-ce que Swagger ? Swagger et OpenAPI expliqués
- Opérations CRUD : Create, Read, Update, Delete expliqué
- Que sont les cookies d'API ? Définition et sécurité
- Métriques de performance d'API : latence, débit, taux d'erreur
- Que sont les API internes ?
- Qu'est-ce qu'un payload dans une API ? JSON, XML, exemples
Outils LoadFocus connexes
Mettez ce concept en pratique avec LoadFocus, la plateforme même qui propulse tout ce que vous venez de lire.