Qu'est-ce qu'un Document JSON ?

Fichier de données structurées avec paires clé-valeur, tableaux, chaînes, nombres, booléens, null. Lingua franca des APIs, configs, BDs.

Qu'est-ce qu'un document JSON ?

Un document JSON est un morceau de données structurées formatées en JavaScript Object Notation (JSON) — un format léger basé sur le texte que les humains peuvent lire et que les machines peuvent parser. JSON est devenu la lingua franca de l'échange de données sur le web moderne : les APIs renvoient du JSON, les fichiers de configuration utilisent du JSON, les bases de données de documents stockent du JSON, les outils de build acceptent du JSON, les manifestes de déploiement utilisent du JSON. Si vous touchez du logiciel en 2026, vous touchez constamment des documents JSON.

Malgré le JavaScript dans son nom, JSON est indépendant du langage. Python, Go, Rust, Java, C#, PHP, Ruby — chaque langage moderne a un parsing JSON intégré ou quasi-standard. Le format est décrit par RFC 8259 (et ECMA-404), en faisant l'un des formats de données les plus stables en usage actuel.

Les six types de valeurs JSON

Un document JSON est construit à partir d'exactement ces six types — ni plus, ni moins :

  • Object: { "key": value, ... } — ensemble non ordonné de paires clé-valeur. Les clés sont toujours des chaînes.
  • Array: [ value, value, ... ] — liste ordonnée de valeurs.
  • String: "hello" — texte UTF-8 entre guillemets doubles. Les barres obliques peuvent être échappées optionnellement ; les barres inverses et guillemets doivent être échappés.
  • Number: 42, 3.14, 1e10, -7 — nombres décimaux. JSON ne distingue PAS int vs. float au niveau du format.
  • Boolean: true ou false — minuscules, sans guillemets.
  • Null: null — explicitement l'absence d'une valeur.

C'est tout. Pas de dates, pas d'UUIDs, pas de blobs binaires, pas de commentaires. Tout au-delà de ces types est une convention superposée (dates ISO 8601 comme chaînes, binaire encodé base64 comme chaînes, etc.).

Un document JSON canonique

{
  "id": "order_42",
  "customer": {
    "name": "Alice",
    "email": "alice@example.com",
    "verified": true
  },
  "items": [
    { "sku": "WIDGET-1", "qty": 2, "price": 9.99 },
    { "sku": "GIZMO-7", "qty": 1, "price": 19.95 }
  ],
  "total": 39.93,
  "shipped_at": null,
  "tags": ["priority", "gift"]
}

Chaque valeur est l'un des six types. La structure peut s'imbriquer arbitrairement profond, et la même forme se parsera identiquement dans n'importe quel langage avec une bibliothèque JSON.

JSON en production : où vous le rencontrerez

  • APIs REST — les corps de requête et réponse sont généralement JSON. Content type application/json.
  • Fichiers de configurationpackage.json (Node), tsconfig.json (TypeScript), composer.json (PHP), cargo.toml (Rust utilise TOML, mais la plupart des écosystèmes adjacents JS sont JSON).
  • Bases de données NoSQL — MongoDB stocke BSON (JSON binaire). Couchbase, DynamoDB, Firestore exposent toutes des APIs en forme de document.
  • Logging — le logging structuré émet un objet JSON par ligne de log (NDJSON, JSON délimité par sauts de ligne).
  • JSON Schema — décrivant les formes JSON pour validation. Largement utilisé dans OpenAPI, AJV (validateur JS), et beaucoup de pipelines de tooling.
  • JSON-LD — JSON pour Linked Data. Utilisé pour les données structurées SEO (FAQPage, BreadcrumbList, Article), le format que Google utilise pour les rich snippets.
  • Manifestes cloud — AWS CloudFormation, ressources Kubernetes (quand authoriées via JSON), fichiers d'état Terraform.

Pièges JSN que tout le monde frappe finalement

  • Pas de virgules de fin autorisées. {"a":1,} est JSON invalide. Les objets JavaScript autorisent les virgules de fin ; JSON ne le fait pas. Source courante de la frustration "mon JSON ne se parse pas".
  • Pas de commentaires. Le JSON pur n'a pas de // ou /* */. Contournements : JSON5, JSONC, ou simplement intégrer les commentaires comme clés "_comment" (et se rappeler de les enlever avant les parsers stricts).
  • Les nombres peuvent perdre en précision. Le JSON.parse de JavaScript stocke tous les nombres comme doubles IEEE 754. Les entiers plus grands que 2^53-1 (9 007 199 254 740 991) perdent en précision. Pour les IDs 64 bits de bases de données, sérialisez en chaînes.
  • Les dates ne sont pas un type. Sérialisez toujours en chaînes ISO 8601 ("2026-05-07T08:22:00Z") ou timestamps Unix (nombres). Les deux extrémités s'accordent sur lequel.
  • Les clés dupliquées sont techniquement valides mais comportement indéfini. La plupart des parsers prennent la dernière valeur. N'écrivez pas de JSON avec des clés dupliquées.
  • UTF-8 uniquement. JSON est UTF-8 par défaut. Les autres encodages (UTF-16, Latin-1) causeront des problèmes — convertissez en UTF-8 à la frontière.
  • Les espaces n'importent pas pour le parsing mais importent pour le diffing. Les diffs JSON pretty-printed sont vastement plus lisibles que minifiés. Utilisez un formateur (jq ., JSON.stringify(x, null, 2)) avant les commits.
  • L'ordre des champs n'est pas significatif. Deux documents JSON avec les mêmes clés dans un ordre différent sont sémantiquement identiques. Les outils comme jq -S trient les clés pour une comparaison canonique.

JSON vs. autres formats de données

FormatMeilleur pourTrade-offs
JSONAPIs, configs, BDs documentsVerbeux, pas de commentaires, pas de dates
YAMLConfigs édités par humains (CI, K8s)Sensible aux espaces, cas limites
TOMLConfigs d'app (Rust, Python)Moins de support d'écosystème
XMLBalisage de documents, entreprise legacyVerbeux, parsing complexe
Protocol BuffersRPC haut débit (gRPC)Binaire, nécessite schéma
MessagePackBinaire équivalent JSON compactPlus petit, moins débogable
BSONStockage interne MongoDBAjoute types binaire, date à JSON

FAQ : Documents JSON

Quelle est la différence entre JSON et les objets JavaScript ?

JSON est un sous-ensemble strict de la syntaxe littérale d'objet JavaScript. Le JSON pur exige des clés entre guillemets doubles ; JavaScript autorise les clés sans guillemets ou avec guillemets simples. JSON n'autorise pas de fonctions, pas de undefined, pas de commentaires. JSON.parse valide la forme stricte.

Comment valider JSON ?

En ligne : jsonlint.com. CLI : jq . file.json (parse + pretty-print, erreurs sur invalide). Pour la validation de schéma : AJV (JS), python-jsonschema, JSON Schema Validator.

Quelle taille peut avoir un document JSON ?

Le format n'impose pas de limite. Les limites pratiques viennent des parsers (certains allouent le document entier en RAM) et des APIs (Cloudflare 100MB, AWS API Gateway 10MB, la plupart des CDN ~10MB). Pour des données plus grandes, utilisez le streaming NDJSON ou passez à Protocol Buffers/Parquet.

JSON vs. JSON Lines (NDJSON) ?

NDJSON est un document JSON valide par ligne. Utilisé pour le streaming et les logs en append-only — vous pouvez parser ligne par ligne sans tout charger. Les tableaux JSON standard exigent de charger le tableau entier d'abord.

Qu'est-ce que JSON Schema ?

Un format basé JSON pour décrire à quoi ressemble un document JSON valide (champs requis, types, contraintes). Utilisé pour la validation d'API, l'auto-complétion IDE (cherchez votre package.json dans VS Code), et la validation de config.

Devrais-je utiliser JSON ou YAML pour les configs ?

Pour les configs générés par machine (sorties de build, locks) : JSON. Pour les configs écrits à la main où la lisibilité et les commentaires importent (workflows CI, manifestes K8s) : YAML. La ligne est floue et dépendante de l'écosystème.

Pourquoi JSON n'a-t-il pas de type date ?

Parce que la spec originale était minimale et les dates JavaScript ont des complications de fuseau horaire. La convention est de sérialiser les dates en chaînes ISO 8601 ; les parsers modernes peuvent les revive en objets Date via une logique personnalisée.

Comment LoadFocus se rapporte à JSON en production

Les documents JSON se déplacent à travers chaque couche des apps web modernes — payloads de requête, corps de réponse, entrées de log. Les tests de charge d'API LoadFocus valident que les endpoints JSON gèrent des payloads concurrents réalistes sans goulots de sérialisation. Le monitoring d'API valide les formes de réponse via assertions JSON Schema, attrapant la dérive quand une API supprime silencieusement un champ.

Quelle est la vitesse de votre site web?

Augmentez sa vitesse et son référencement naturel de manière transparente avec notre Test de Vitesse gratuit.

Test gratuit de vitesse du site Web

Analyser la vitesse de chargement de votre site Web et améliorer ses performances avec notre outil gratuit de vérification de la vitesse de la page.

×