Mise à jour du samedi 20 décembre 2025

L'actu utile, décryptée.

980 articles en ligne

ActuPeople

Le magazine des sujets qui font votre quotidien

08 Tech & Numérique Décryptage

Commentaire dans le JSON : les alternatives sans erreur

Le JSON strict ne tolère ni `//` ni `/* ... */`. Pourtant, documenter une configuration ou une API reste nécessaire. Voici les solutions réellement fiables en 2026, leurs pièges et le bon choix selon que votre fichier voyage, reste local ou passe par une phase de compilation.

Par La rédaction d’Actu People Publié le 15 min de lecture 3 061 mots

Écran de développeur affichant une configuration JSON et des annotations techniques
Choisir le bon format évite les erreurs de parsing.
Sommaire de l’article

L’essentiel

  • Le JSON strict interdit les commentaires, les virgules finales et les clés sans guillemets : `JSON.parse()` les rejettera.
  • Pour une API, un export ou un fichier partagé, gardez du JSON strict et documentez-le hors des données.
  • JSONC et JSON5 facilitent l’écriture humaine, mais exigent un parseur dédié ou une conversion avant diffusion.
  • Une clé `_comment` reste valide en JSON, mais elle devient une donnée visible pour tous les consommateurs.
  • Ne supprimez jamais des commentaires JSONC avec une expression régulière : un parseur protège les chaînes et les URL.

La réponse sans détour

Non, un commentaire dans le JSON strict n’est pas possible. Les syntaxes `// commentaire` et `/* commentaire */` rendent le fichier invalide selon la grammaire JSON. Un navigateur avec `JSON.parse()`, une API qui attend du `application/json` ou de nombreux outils d’automatisation échoueront alors à le lire. Pour ajouter des notes sans casser la compatibilité, choisissez des métadonnées contrôlées, une documentation séparée ou un format étendu traité avant livraison.

L’extension du fichier ne change rien à cette règle. Renommer un fichier en `.json` ne donne pas le droit d’y placer des commentaires, pas plus que l’appeler « fichier de configuration ». À l’inverse, certains logiciels acceptent volontairement un dialecte comme JSONC ou JSON5 sous une extension `.json`. Cette tolérance appartient au logiciel concerné, non au standard JSON : elle doit donc être vérifiée pour chaque lecteur du fichier.

Pourquoi le JSON refuse les commentaires

Le JSON est un format d’échange de données volontairement étroit. Sa syntaxe définit précisément ce qu’un analyseur doit accepter : accolades, crochets, deux-points, virgules, valeurs et espaces blancs. Les commentaires n’en font pas partie. Ce cadre réduit les divergences entre langages et plateformes : un même document peut circuler entre un navigateur, un service Java, une application mobile et un outil métier sans interprétation particulière.

Cette contrainte crée une frontière utile entre la donnée et son explication. Un commentaire est pratique pour la personne qui édite le fichier, mais il n’a pas nécessairement de sens pour l’application qui le consomme. Si chaque bibliothèque décidait librement de conserver, retirer ou transmettre les commentaires, deux outils pourraient produire des résultats différents à partir du même document. Le JSON privilégie donc la portabilité au confort d’annotation.

  • `// une note` — invalide dans un JSON strict, même s’il est placé seul sur une ligne.
  • `/* une note */` — invalide également ; cette syntaxe appartient notamment à JavaScript et CSS, pas au JSON.
  • Virgule finale — invalide après le dernier élément d’un objet ou d’un tableau JSON strict.
  • Guillemets simples — invalides pour les chaînes et les noms de propriétés ; utilisez exclusivement des guillemets doubles.
  • Clé non entourée de guillemets — invalide : écrivez `"port"` et non `port` dans un objet JSON.

Annoter sans quitter le JSON

La solution la plus compatible consiste à laisser le fichier en JSON strict et à placer les explications ailleurs : un README proche du fichier, une documentation d’API, un schéma JSON ou une page de conventions. C’est le meilleur choix dès que le document est envoyé à un tiers, publié sur le Web, importé dans plusieurs outils ou stocké comme donnée métier. L’explication ne risque alors ni de polluer le contrat, ni d’être interprétée comme une valeur exploitable.

Employer une clé de métadonnée avec prudence

Vous pouvez aussi ajouter une propriété telle que `"_comment": "Port du serveur de test"`. Le document reste alors parfaitement valide en JSON, car cette note est une simple chaîne de caractères associée à une clé. Mais ce n’est pas un vrai commentaire : elle sera reçue par tous les consommateurs, peut apparaître dans une interface, être indexée, exportée ou rejetée par une validation stricte. Convenez d’un préfixe et d’une règle de traitement avant de l’adopter.

Solutions d’annotation compatibles avec un fichier JSON strict
MéthodeLe JSON reste strictLa note est transmiseUsage pertinent
README ou documentation liéeOuiNonConfiguration partagée, données métier, API publique
Clé `_comment` ou `_note`OuiOuiPetit fichier interne dont tous les lecteurs ignorent cette clé
Champ `description` métierOuiOuiQuand l’explication fait réellement partie de la donnée affichée
Schéma JSON avec `$comment`OuiNon pour l’instanceContrat de données, validation et documentation technique

Le champ `$comment` concerne un document de schéma JSON ; il ne remplace pas une propriété de commentaire dans les données elles-mêmes.

JSONC et JSON5 : formats étendus

Quand un fichier est principalement écrit et relu par des humains, JSONC et JSON5 peuvent améliorer nettement le confort. JSONC désigne généralement du JSON enrichi de commentaires, souvent utilisé par certains outils d’édition et de configuration. JSON5 est un format distinct, plus permissif : il accepte notamment les commentaires, les virgules finales, les guillemets simples et, dans plusieurs cas, des identifiants non quotés. Aucun des deux n’est du JSON strict.

Ce que les principaux formats acceptent réellement
FormatCommentairesVirgule finaleCompatible avec `JSON.parse()`Usage à privilégier
JSON strictNonNonOuiÉchanges, API, fichiers publiés et données durables
JSONCOui selon le parseurSelon le parseurNonRéglages locaux d’un outil explicitement compatible
JSON5OuiOuiNonFichiers de configuration contrôlés par votre application
JSON généré après conversionNon dans le livrableNonOuiChaîne de production avec fichier source commenté

JSONC n’est pas une norme unique : vérifiez les fonctionnalités exactes du parseur choisi, notamment la prise en charge des virgules finales.

JSON strict ou format commenté ?

Le bon format dépend moins de votre préférence que du nombre et de la nature des logiciels qui liront le fichier.

Option A

JSON strict + documentation

Le choix universel

Ce qui plaide pour

  • Lisible par les parseurs standard de tous les langages
  • Adapté aux API, aux exports et aux fichiers versionnés
  • Compatible avec le type MIME `application/json`
  • Réduit les surprises lors d’un changement d’outil

Ce qui limite

  • Les explications vivent dans un fichier ou un schéma séparé
  • Moins confortable pour une configuration longue éditée à la main

Option B

JSONC ou JSON5

Le choix local et maîtrisé

Ce qui plaide pour

  • Commentaires proches des réglages qu’ils expliquent
  • Lecture plus agréable des gros fichiers de configuration
  • Possibilité de convertir automatiquement vers du JSON strict

Ce qui limite

  • Nécessite un parseur ou un outil précis
  • Risque de casse si le fichier est réutilisé ailleurs
  • Ne doit pas être servi tel quel comme réponse JSON d’API

Notre arbitrage Choisissez le JSON strict dès que le fichier sort de votre dépôt, alimente une API ou peut être lu par un outil inconnu. Réservez JSONC ou JSON5 à une configuration interne dont vous contrôlez le parseur. Si l’équipe veut les deux, éditez un source commenté puis générez un livrable JSON strict.

Ne confondez pas non plus JSONC avec un fichier JavaScript. JSONC reste destiné aux données et doit être lu par un parseur conçu pour lui. JSON5 étend davantage la syntaxe, ce qui le rend pratique à saisir mais moins interchangeable. Dans les deux cas, le fichier doit annoncer clairement sa convention dans le dépôt, et idéalement employer une extension explicite, par exemple `.jsonc` ou `.json5`, quand l’outil le permet.

Choisir selon le fichier concerné

Pour trancher, partez du consommateur le plus exigeant, pas de l’éditeur le plus souple. Un fichier d’options lu uniquement par votre application peut être du JSON5 si cette application le prévoit. Un fichier `package.json`, une réponse HTTP, un fichier importé par une administration, une plateforme SaaS ou un client mobile doit rester du JSON strict. Le fait qu’un éditeur colore correctement les commentaires ne garantit aucune compatibilité à l’exécution.

  • Configuration locale d’IDE — utilisez JSONC seulement si l’outil documente ce mode et si le fichier ne part pas dans une API.
  • Fichier de déploiement partagé — préférez JSON strict, un schéma et un README ; plusieurs systèmes peuvent le relire.
  • Réponse d’API — envoyez exclusivement du JSON strict avec `application/json`, sans commentaire ni dialecte étendu.
  • Données de catalogue ou import CSV converti — conservez les explications dans le modèle de données ou dans la documentation métier.
  • Source de configuration complexe — autorisez JSONC ou JSON5 en amont, puis générez et contrôlez un `.json` final.
  • Schéma de validation — utilisez `description` et, dans le schéma lui-même, `$comment` lorsque votre outillage le prend en compte.

Une propriété de type `description` ne doit pas servir de cachette à un commentaire technique si elle est affichée aux utilisateurs. Elle a du sens lorsqu’elle décrit réellement un produit, une règle ou un paramètre. À l’inverse, une note comme « ne pas modifier avant migration » relève de la documentation de maintenance. Séparer ces deux rôles évite que des consignes internes se retrouvent dans une interface cliente ou dans un export.

Mettre en place un flux fiable

La méthode la plus robuste pour bénéficier de commentaires sans abandonner le JSON consiste à distinguer le fichier source du fichier distribué. Les développeurs éditent un `.jsonc` ou un `.json5` ; une étape automatisée le lit avec le bon parseur, vérifie sa structure et produit un JSON strict. Les applications, scripts et services externes ne consomment ensuite que ce résultat. Cette séparation limite les erreurs de copier-coller et les incompatibilités tardives.

Créer un JSON commenté sans casser la livraison

  1. Définir le contrat de sortie

    Identifiez le fichier réellement lu en production, son type MIME éventuel et le parseur utilisé. S’il attend du JSON standard, imposez un livrable `.json` strict.

  2. Choisir un seul dialecte source

    Adoptez JSONC ou JSON5, pas un mélange implicite. Documentez les éléments autorisés : commentaires seuls, ou aussi virgules finales et guillemets simples.

  3. Convertir avec un parseur dédié

    Intégrez une commande de conversion dans votre script de construction. N’employez pas une substitution de texte ou une expression régulière pour retirer les commentaires.

  4. Valider le fichier produit

    Testez le livrable avec le même parseur que celui de production, par exemple `JSON.parse()` côté JavaScript, puis vérifiez sa conformité au schéma attendu.

Vérifications avant d’envoyer le fichier

  • Le fichier publié est lu avec un parseur JSON strict dans l’intégration continue.
  • Aucun `//`, `/* ... */`, guillemet simple ou virgule finale ne subsiste dans le livrable.
  • Le fichier source et le fichier généré ne sont pas confondus dans le dépôt.
  • Les clés de métadonnées autorisées figurent dans le schéma et dans les exemples.
  • La documentation explique quel fichier les équipes doivent modifier.
  • Une erreur de conversion bloque la livraison plutôt que de produire un fichier partiel.

Conservez une source unique. Modifier à la main le fichier JSON généré et son équivalent JSONC mène presque toujours à une divergence. Faites du fichier commenté l’artefact éditable, puis régénérez le JSON strict à chaque livraison. Si vous devez versionner le résultat pour un outil externe, marquez-le clairement comme généré et interdisez sa modification manuelle dans les conventions du projet.

Erreurs fréquentes et cas particuliers

L’erreur la plus courante consiste à supprimer `//` avec une expression régulière avant de faire `JSON.parse()`. Cette approche casse les chaînes qui contiennent une URL comme `"https://exemple.fr"`, un chemin ou du texte incluant les mêmes caractères. Elle peut aussi retirer une portion de contenu légitime après un échappement. Un parseur JSONC ou JSON5 analyse le contexte syntaxique ; une expression régulière, elle, ne sait pas de façon fiable si elle lit une chaîne ou un commentaire.

Objets, tableaux et fichiers imposés

Dans un objet, une clé `_comment` reste techniquement possible, à condition que le contrat l’autorise. Dans un tableau homogène, ajouter une chaîne explicative au milieu des objets change le type de l’élément et peut provoquer une erreur ou un comportement inattendu. Évitez aussi d’entourer un tableau existant d’un objet `data` pour y ajouter une note : vous modifiez alors toute l’interface. Quand le format est imposé par un fournisseur, seul son contrat fait foi.

  • Copier un exemple JSON5 — vérifiez les guillemets simples, les clés non quotées et les virgules finales avant de le coller dans un JSON strict.
  • Faire confiance à l’extension `.json` — inspectez le parseur réel ; l’extension n’est qu’un nom de fichier.
  • Ajouter `_comment` partout — centralisez les notes ou utilisez la documentation pour éviter de noyer les données.
  • Publier du JSONC sur une API — convertissez-le d’abord ; un client standard ne comprend pas ce dialecte.
  • Masquer un secret en commentaire — retirez-le du dépôt et des historiques, car un commentaire peut être conservé ou diffusé.

Coût, données sensibles et maintenance

Le format JSON, JSONC ou JSON5 n’entraîne pas de coût de licence par nature. Le coût réel est celui de l’outillage et des incidents évités : rédaction d’une convention, ajout d’un parseur, conversion dans l’intégration continue et tests. Pour un petit projet, cela représente souvent une tâche de configuration ponctuelle. Pour une API ou plusieurs équipes, ce temps est généralement moins coûteux qu’un incident de compatibilité chez un client ou lors d’un déploiement.

Il n’existe pas de saisonnalité propre au JSON : un fichier ne devient pas plus compatible selon la période de l’année. En revanche, planifiez les migrations de format en dehors des fenêtres de mise en production chargées, et testez-les avant un changement majeur d’IDE, de bibliothèque ou de plateforme. Inscrivez le dialecte autorisé dans les règles du dépôt ; cette décision survivra mieux aux arrivées dans l’équipe qu’une simple habitude orale.

La règle simple à retenir

Si vous devez échanger le fichier, gardez-le en JSON strict. Si vous devez surtout le lire et le modifier à la main, un fichier JSONC ou JSON5 est acceptable à condition que son parseur soit explicitement maîtrisé. Si vous avez besoin des deux, adoptez un source commenté et générez un JSON standard. C’est la solution qui préserve la lisibilité humaine sans transformer chaque consommateur en cas particulier.

  • Besoin de compatibilité maximale — JSON strict, schéma de validation et documentation séparée.
  • Besoin de notes locales — JSONC, seulement dans un outil qui l’annonce explicitement.
  • Besoin de syntaxe plus souple — JSON5, avec un parseur dédié et une convention d’équipe.
  • Besoin d’un fichier livré — conversion automatisée vers JSON strict avant publication.
  • Besoin de sens métier — utilisez un vrai champ `description`, pas un commentaire déguisé.

Questions fréquentes

Peut-on mettre un commentaire avec // dans un fichier JSON ?
Non. La syntaxe `//` n’est pas admise par le JSON strict, tout comme `/* ... */`. Un appel à `JSON.parse()` en JavaScript rejettera le document. Certains outils acceptent des commentaires parce qu’ils lisent du JSONC ou un autre dialecte, mais ce comportement ne rend pas le fichier compatible avec un parseur JSON standard. Pour une API ou un fichier partagé, retirez les commentaires ou convertissez le fichier avant diffusion.
Quelle différence entre JSONC et JSON5 ?
JSONC désigne habituellement du JSON enrichi de commentaires pour des fichiers de configuration, mais ses règles exactes dépendent du parseur : la gestion des virgules finales peut varier. JSON5 est une spécification plus permissive qui accepte les commentaires, les virgules finales, les guillemets simples et certaines clés non quotées. Ni JSONC ni JSON5 ne sont acceptés par `JSON.parse()`. Choisissez-les seulement si vous contrôlez le logiciel qui lit le fichier.
Comment ajouter un commentaire dans package.json ?
Vous ne devez pas ajouter de commentaire dans un `package.json` : les outils Node.js et les gestionnaires de paquets attendent du JSON strict. Un commentaire, une virgule finale ou des guillemets simples peuvent empêcher l’installation ou les scripts de fonctionner. Placez l’explication dans un README, dans la documentation du projet ou dans les descriptions prévues par l’écosystème. Gardez le manifeste tel qu’attendu par les outils qui le consomment.
La clé _comment est-elle une bonne alternative aux commentaires JSON ?
Elle peut convenir à un petit fichier interne, car `"_comment": "..."` est du JSON valide. Mais cette clé est une donnée, pas un commentaire : elle est transmise, peut être affichée et doit être admise par le schéma. Évitez-la dans une API publique, des données métier ou un format imposé. Préférez une documentation externe si la note n’a aucune utilité fonctionnelle pour le consommateur.
Comment supprimer des commentaires JSONC sans casser les URL ?
N’utilisez pas une expression régulière pour retirer `//` ou `/* ... */`. Une URL telle que `https://exemple.fr` dans une chaîne contient déjà `//`, et une suppression naïve abîmerait la valeur. Utilisez un parseur JSONC ou JSON5 adapté au format source, puis sérialisez l’objet obtenu en JSON strict. Ajoutez ensuite un test automatisé avec le parseur réellement utilisé en production.
Comment documenter proprement une réponse JSON d’API ?
Conservez la réponse en JSON strict et documentez sa structure dans un contrat d’API, un schéma JSON ou une spécification telle qu’OpenAPI. Décrivez le rôle, le type, les valeurs possibles et les exemples de chaque champ. Un champ `description` peut figurer dans le schéma, mais ne doit apparaître dans la réponse elle-même que s’il fait partie des données utiles au client. Cette séparation maintient la compatibilité de tous les consommateurs.

Les lecteurs se demandent aussi

  • peut-on mettre des commentaires dans un fichier json
  • jsonc ou json5 quelles différences
  • commenter un package json
  • supprimer les commentaires d’un fichier jsonc
  • json parse accepte-t-il les commentaires
  • alternative aux commentaires JSON

Organismes de référence sur ce sujet

À lire ensuite

D’autres guides d’Actu People sur des sujets voisins.

Toute la rubrique Tech