JSON Toolkit

Ce qu'est un fichier JSON, avec quoi l'ouvrir et comment le modifier

L’essentiel : Du texte illisible dans le Bloc-notes aux trois façons d'ouvrir un fichier JSON, en passant par la vérification de l'intégrité après édition et la conduite à tenir face à un fichier énorme qui refuse de s'ouvrir.

Débutant~9 min de lecturePublié le 2026-10-30Mis à jour le 2026-10-30
Illustration des bases du fichier JSON

L'essentiel : avant d'ouvrir un fichier JSON, vérifiez son encodage et la présence d'un BOM, puis contrôlez que la structure ne contient qu'un objet ou un tableau ; après édition, validez toujours avec un analyseur plutôt qu'en jaugeant les accolades et les virgules à l'œil.

C'est simplement un fichier texte brut avec l'extension .json, et même le Bloc-notes peut l'ouvrir. Le vrai casse-tête n'est pas « il refuse de s'ouvrir », mais qu'une fois ouvert, vous ne voyez pas ce que vous avez cassé.

1. Ce que contient réellement un fichier JSON

Un fichier JSON valide ne peut contenir que l'une de deux choses : un objet {...} ou un tableau [...]. Rien d'autre n'est permis — pas de déclaration de variable, pas de commentaire, pas de fonction.

{
  "name": "order service",
  "port": 8080,
  "debug": false,
  "upstream": ["10.0.0.11", "10.0.0.12"],
  "timeout": null
}

Il suffit de reconnaître trois choses sur le plan structurel :

Ce que vous voyez Signification Concept de programmation correspondant
Des paires clé-valeur entre { } Un objet ; les clés doivent être des chaînes entre guillemets doubles Map / struct
Une suite de valeurs entre [ ] Un tableau ; les types d'éléments peuvent différer List
Six types de valeurs Chaîne, nombre, booléen, null, objet, tableau Seulement ces six ; ni dates ni entiers

L'extension du fichier ne détermine pas le contenu : package.json, tsconfig.json et composer.json sont tous la même chose ; différents outils ont simplement convenu de lire des clés différentes.

2. Trois façons de l'ouvrir, à choisir selon le cas

Simple coup d'œil : ouvrez-le dans un navigateur. Faites glisser le fichier dans une fenêtre Chrome ou Edge et le navigateur l'affiche tel quel ; si une extension JSON Viewer est installée, il est mis en forme et rendu repliable automatiquement.

Besoin de modifier le contenu : utilisez un éditeur. VS Code, Sublime et Notepad++ proposent tous la coloration syntaxique JSON et l'appariement des accolades, et Shift + Alt + F dans VS Code met en forme le document. À noter que le Bloc-notes de Windows peut ajouter un BOM lors de l'enregistrement, ce qui peut empêcher vos modifications de configuration de prendre effet ; mieux vaut l'éviter.

Ne rien installer et juste valider : utilisez le formateur JSON en ligne. Collez le contenu et vous voyez immédiatement les numéros de ligne et de colonne, l'emplacement de l'erreur et une arborescence repliable ; copiez le résultat une fois terminé. Les données sont traitées localement dans le navigateur et ne sont pas envoyées à un serveur.

Fichiers volumineux (plusieurs dizaines de Mo ou plus) : ne les forcez pas à s'ouvrir dans un éditeur. Ouvrir un fichier JSON de 100 Mo dans VS Code figera jusqu'à vous faire douter de vos choix de vie ; inspectez d'abord la structure en ligne de commande :

# Look at the first 20 lines to confirm whether it is an array
head -n 20 data.json

# Use jq to list top-level keys without loading the whole file
jq -r 'keys[]' data.json | head

# Count the array length
jq 'length' data.json

3. Que faire quand un double-clic ouvre du texte illisible

Trois causes, chacune traitée différemment :

  1. C'est en réalité un fichier binaire (par exemple une archive compressée, ou un fichier de base de données exporté, portant l'extension .json). Utilisez file data.json pour voir le type réel ; ne le forcez pas à être traité comme du texte.
  2. L'encodage n'est pas UTF-8. Du texte chinois encodé en GBK est illisible dans un environnement UTF-8. Utilisez « Réouvrir avec un encodage » de l'éditeur pour essayer GBK ; si l'affichage est correct, enregistrez en UTF-8.
  3. Le fichier a été chiffré ou compressé. Le symptôme est PK (zip) ou une série de points d'interrogation au début ; ces fichiers doivent d'abord être décompressés ou déchiffrés.

4. Comment confirmer que rien n'est cassé après édition

JSON ne tolère aucune approximation : une virgule manquante, une virgule en trop ou un guillemet oublié et tout le fichier est mort, et l'emplacement de l'erreur signalé pointe souvent la ligne suivante. Il faut donc valider après édition ; ne vous fiez pas à vos yeux.

Les trois actions d'édition à haut risque, classées par fréquence des problèmes :

Action Conséquence courante Comment l'éviter
Coller un bloc de configuration Introduit une virgule finale ou une ponctuation pleine largeur Formatez immédiatement après le collage
Intervertir manuellement l'ordre des clés Une virgule en trop ou manquante Utilisez les commandes de déplacement de ligne de l'éditeur ; ne retapez pas à la main
Supprimer le dernier élément d'un tableau Laisse ,] derrière soi Vérifiez l'appariement des crochets après suppression

La validation est simple : collez dans le validateur en ligne et cherchez le texte rouge, ou exécutez une ligne en ligne de commande :

python3 -m json.tool config.json > /dev/null && echo OK

Si OK s'affiche, le fichier est valide. Si vous voulez aussi valider les types de champs (par exemple que port soit un nombre et que name ne soit pas vide), écrire un JSON Schema est bien plus fiable que l'œil humain.

5. En quoi .json diffère de ses proches parents

Extension Différence Un analyseur standard peut-il le lire
.json JSON standard Oui
.jsonc Autorise les commentaires // et /* */ Non ; il faut d'abord retirer les commentaires
.json5 Autorise commentaires, guillemets simples, clés non citées, virgules finales Non ; un analyseur JSON5 est nécessaire
.jsonl / .ndjson Un JSON indépendant par ligne ; le fichier entier n'est pas du JSON valide Non, pas dans son ensemble ; il faut le lire ligne par ligne

Ne vous étonnez pas de voir des commentaires dans tsconfig.json ; il est en fait traité comme un .jsonc. Donnez le même contenu à JSON.parse et il lèvera une erreur. Pour passer de l'un à l'autre, utilisez JSON5 vers JSON pour retirer commentaires et virgules finales en un clic.

6. Quand changer de format de stockage

JSON convient aux cas où « la structure n'est pas figée, les humains doivent la lire et elle circule entre langages ». Si un fichier dépasse plusieurs dizaines de Mo, que la structure des champs est stable et que vous avez besoin de requêtes conditionnelles, rester sur JSON ne fait que vous compliquer la vie — passez à SQLite, à Parquet ou chargez-le dans une base de données ; les performances de lecture/écriture varient de plusieurs ordres de grandeur. Pour les arbitrages précis, voir Analyser et diffuser de gros JSON.

FAQ

Comment inspecter un fichier JSON trop gros pour s'ouvrir ?

Ne le forcez pas à s'ouvrir dans un éditeur ; ouvrir un fichier JSON de 100 Mo dans VS Code figera jusqu'à vous faire douter de vos choix de vie. Inspectez d'abord la structure en ligne de commande : head -n 20 confirme s'il s'agit d'un tableau, jq -r 'keys[]' n'affiche que les clés de premier niveau, et jq 'length' compte la longueur du tableau. Aucune de ces commandes ne charge tout le fichier.

Pourquoi mes modifications dans le Bloc-notes empêchent-elles la configuration de prendre effet ?

Le Bloc-notes de Windows peut ajouter un BOM lors de l'enregistrement, et un fichier avec un BOM échoue à l'analyse de configuration, si bien que le contenu modifié ne prend jamais effet. L'article recommande d'utiliser des éditeurs comme VS Code, Sublime ou Notepad++, qui proposent la coloration syntaxique JSON et l'appariement des accolades. Si vous avez déjà utilisé le Bloc-notes, enregistrez à nouveau en « UTF-8 sans BOM » et réessayez.

Puis-je traiter un fichier JSON comme du JSON5 pour y ajouter des commentaires ?

Non — un analyseur standard n'autorise pas les commentaires dans un fichier .json et JSON.parse lève immédiatement une erreur. Les commentaires ont leur place dans des fichiers .jsonc ou .json5 lus par l'analyseur correspondant. Des fichiers comme tsconfig.json sont en réalité traités comme des .jsonc ; donnez le même contenu à JSON.parse et il échoue.