Corriger les virgules finales en JSON

Une virgule finale après la dernière propriété d’un objet ou le dernier élément d’un tableau est valide dans certains contextes JavaScript, mais pas en JSON.

Pourquoi l’erreur survient

Les littéraux d’objet JavaScript autorisent souvent une virgule finale, mais JSON exige que le dernier élément soit suivi directement du crochet ou de l’accolade de fermeture.

Exemple cassé

{ "name": "Ada", "active": true, }

JSON corrigé

{ "name": "Ada", "active": true }

D’où viennent les virgules finales

Le plus souvent : édition à la main d’une configuration, commentaire du dernier élément, ou copie depuis du JavaScript/TypeScript. Les moteurs de templates et les générateurs de code en produisent aussi lorsqu’une boucle ajoute une virgule après chaque élément sans suivre le dernier index.

Pourquoi certains parsers les acceptent mais pas JSON

Les littéraux d’objet JavaScript, JSON5, JSONC, YAML et la plupart des syntaxes de littéraux dans d’autres langages acceptent la virgule finale parce qu’elle rend les diffs plus propres. Le JSON RFC 8259 ne l’accepte délibérément pas — JSON.parse, le package encoding/json de Go ou le module json de Python la rejettent.

Détecter les virgules finales avant la production

Lintez les fichiers de configuration en CI avec un parser JSON strict (jq, python -m json.tool ou node -e 'JSON.parse(...)'). Pour les dépôts TypeScript, configurez "trailingComma": "none" dans Prettier pour les .json afin que le formateur n’en ajoute pas.

Quand la virgule finale n’est pas le vrai bug

Si un payload vient d’une API ou d’une librairie qui produit du JSON et contient une virgule finale, le problème est la sérialisation en amont, pas le consommateur. Corriger la virgule localement masque un bug du producteur qui reviendra au prochain appel — réparez le producteur.

FAQ

Q : JSON.parse acceptera-t-il un jour les virgules finales ? R : Non — le mode strict est la norme. Q : JSON5 est-il un substitut sûr ? R : Seulement pour des configurations éditées à la main ; jamais pour des protocoles réseau. Q : L’outil d’auto-réparation peut-il ne supprimer que les virgules finales ? R : Oui, collez le JSON et il les retire avec d’autres erreurs de syntaxe courantes.