araç köşesi

Convertir et valider du JSON5 en JSON

Vérifier du JSON5 avec commentaires, apostrophes ou virgules finales et le convertir en JSON strict

Vos données restent chez vous. La conversion se fait dans le navigateur ; rien n'est envoyé à un serveur.

Comment ça marche

Un tsconfig.json, le settings.json de VS Code ou une configuration Babel contiennent souvent des lignes de commentaire, des apostrophes et une virgule après le dernier élément. Ces fichiers fonctionnent dans leur programme, mais un outil, une API ou JSON.parse qui attend du JSON strict les refuse avec une erreur « Unexpected token ». Collez le texte dans la zone de gauche. L'outil le lit selon les règles JSON5 et écrit du JSON strict à droite : les clés sans guillemets (target:) reçoivent des guillemets doubles, les chaînes entre apostrophes comme 'ES2020' passent en guillemets doubles, les virgules finales sont supprimées, les nombres hexadécimaux comme 0x10 deviennent 16 et les commentaires // et /* */ sont retirés. La ligne de résultat donne la taille en octets et le nombre de commentaires retirés. Si le texte n'est pas non plus du JSON5 valide, par exemple un guillemet reste ouvert, rien n'est converti et vous voyez la ligne et la colonne de l'erreur. Le JSON ne connaît ni Infinity ni NaN : ces valeurs sont écrites null et signalées à part dans la ligne de résultat.

Cet outil est aussi connu sous le nom de convertir json5 en json, json5 to json, valider json5, supprimer commentaires json, jsonc en json, json avec commentaires.

Qu'est-ce que JSON5 ?

Le JSON5 est une extension du JSON qui facilite l'écriture à la main, inspirée de la façon dont JavaScript écrit les objets. Contrairement au JSON strict, il accepte les commentaires // et /* */, les chaînes entre apostrophes, les clés sans guillemets, une virgule après le dernier élément, les nombres hexadécimaux commençant par 0x et les valeurs Infinity et NaN. Babel et certains outils de compilation lisent des configurations JSON5, mais pas JSON.parse dans le navigateur.

Qu'est-ce que JSON strict ?

Le JSON strict suit exactement la norme RFC 8259 : clés et chaînes uniquement entre guillemets doubles, aucun commentaire, pas de virgule après le dernier élément, nombres en base dix. La bibliothèque JSON de chaque langage de programmation et chaque API lisent cette forme. Convertir un fichier de configuration en JSON strict avant de le transmettre à un autre programme évite les erreurs du type « Unexpected token ».

Quelle différence entre JSON5 et JSON ?

Le JSON est un format strict conçu pour échanger des données : chaque clé entre guillemets doubles, pas de commentaires, pas de virgule finale. Le JSON5 garde le même modèle de données mais assouplit l'écriture : commentaires, apostrophes, clés sans guillemets, virgules finales et nombres hexadécimaux sont permis. Tout document JSON est du JSON5 valide, l'inverse n'est pas vrai. C'est pourquoi on utilise le JSON5 pour les configurations modifiées à la main, et le JSON pour faire circuler des données entre programmes.

Pourquoi mes commentaires ont-ils disparu ?

Le JSON strict ne peut pas contenir de commentaires ; la norme les exclut volontairement. Convertir du JSON5 en JSON fait donc forcément disparaître les notes écrites avec // et /* */. L'outil indique combien de commentaires il a retirés pour que la perte ne passe pas inaperçue.

Si vous continuez à modifier le fichier à la main, gardez le fichier JSON5 d'origine et ne donnez la sortie JSON qu'à l'endroit qui exige du JSON strict (une requête d'API, un champ de base de données, un script qui utilise JSON.parse). Pour garder les commentaires, le YAML est un bon choix : il accepte les commentaires et contient les mêmes données que le JSON.

Quand le JSON5 suffit-il, quand le JSON est-il obligatoire ?

Le JSON5 et le JSON avec commentaires (JSONC) servent aux fichiers de configuration modifiés à la main : on peut y écrire des notes et laisser une virgule finale pour ajouter ou retirer une ligne facilement. TypeScript, VS Code et Babel acceptent cette forme souple dans leurs propres fichiers.

Quand des données circulent entre programmes, le JSON strict est obligatoire : JSON.parse dans le navigateur, les API REST et la plupart des bibliothèques considèrent commentaires et apostrophes comme des erreurs. Cette page fait passer le texte du premier monde au second ; pour du JSON déjà strict à simplement réindenter, l'outil de mise en forme JSON convient mieux.

  • tsconfig, VS Code, configuration Babel → peut rester en JSON5 / JSONC
  • Requête d'API, JSON.parse, base de données → JSON strict (sortie de cette page)
  • Déjà du JSON strict, indentation seulement → mise en forme JSON

Questions fréquentes

Comment convertir du JSON avec commentaires en JSON normal ?

Collez le texte dans la zone de gauche de cette page. Les commentaires // et /* */ sont retirés, les apostrophes deviennent des guillemets doubles, les virgules finales sont supprimées et du JSON strict apparaît à droite. Copiez-le ou téléchargez-le en fichier .json.

JSON5 et JSONC, est-ce la même chose ?

C'est proche, mais pas identique. Le JSONC, utilisé par VS Code, n'autorise que les commentaires et, par endroits, la virgule finale. Le JSON5 va plus loin : apostrophes, clés sans guillemets, nombres hexadécimaux et chaînes sur plusieurs lignes sont aussi permis. Tout fichier JSONC est du JSON5 valide, donc cet outil lit les deux.

Que deviennent les valeurs Infinity ou NaN ?

Le JSON ne connaît pas ces valeurs ; JSON.stringify les écrit null. L'outil ne le fait pas en silence : la ligne de résultat indique combien de valeurs sont devenues null. Pour les garder, enregistrez-les sous forme de texte (« Infinity »).

Mes données sont-elles envoyées à un serveur ?

Non. La conversion se fait entièrement dans votre navigateur ; le fichier de configuration ou les données collées ne quittent pas cette page et ne sont enregistrés nulle part.