Dans cet article
Qu'est-ce que JSON5 ?
JSON5 est un surensemble de JSON qui ajoute des fonctionnalites inspirees de la syntaxe ECMAScript 5.1. Il a ete cree pour rendre JSON plus convivial pour les fichiers de configuration et les cas ou les utilisateurs ecrivent et lisent JSON manuellement. Tout document JSON valide est egalement un JSON5 valide, mais JSON5 ajoute les commentaires, les virgules finales, les cles sans guillemets et d'autres commodites.
La specification JSON5 a ete finalisee en 2018 et est largement adoptee dans l'outillage JavaScript. Les outils de build comme Babel, Next.js et Webpack acceptent les fichiers de configuration JSON5. La conversion de JSON5 en JSON standard est necessaire pour interoperer avec les systemes qui ne comprennent que le JSON strict, comme les API, les bases de donnees et la plupart des langages de programmation.
Fonctionnalites JSON5 expliquees
JSON5 ajoute plusieurs extensions syntaxiques qui rendent les fichiers de configuration plus faciles a ecrire et a maintenir.
- Commentaires — les commentaires monoligne (//) et multiligne (/* */) sont autorises, rendant les fichiers de configuration auto-documentes
- Virgules finales — les tableaux et objets peuvent avoir une virgule apres le dernier element, reduisant le bruit dans les diffs
- Cles sans guillemets — les cles d'objet qui sont des identifiants ECMAScript valides n'ont pas besoin de guillemets
- Nombres hexadecimaux — les valeurs numeriques peuvent etre ecrites en 0xFF, utile pour les codes couleur dans la configuration
- Chaines multilignes — les valeurs de chaines peuvent s'etendre sur plusieurs lignes avec une continuation par antislash
- Valeurs numeriques speciales — Infinity, -Infinity et NaN sont des litteraux numeriques valides en JSON5
Essayez gratuitement — sans inscription
Convertir JSON5 en JSON →Ou JSON5 est utilise
JSON5 est principalement utilise dans l'outillage de l'ecosysteme JavaScript ou les fichiers de configuration sont ecrits et maintenus par les developpeurs.
- Babel — les fichiers .babelrc et babel.config.json5 supportent la syntaxe JSON5 pour la configuration du build avec commentaires
- TypeScript — tsconfig.json supporte les fonctionnalites JSON5 comme les commentaires et les virgules finales (techniquement JSONC)
- Chrome DevTools — les profils de limitation reseau et autres parametres utilisent le format JSON5
- Next.js — les fichiers de configuration acceptent JSON5 pour une configuration conviviale avec documentation en ligne
Questions frequemment posees
Les navigateurs peuvent-ils analyser JSON5 nativement ?
Non. Les navigateurs ne supportent que le JSON standard via JSON.parse(). Pour analyser JSON5 dans un navigateur ou une application Node.js, vous avez besoin du package npm json5. Les outils de build qui supportent JSON5 gerent l'analyse en interne lors de leur etape de build.
Quelle est la difference entre JSON5 et JSONC ?
JSONC (JSON avec commentaires) ajoute uniquement le support des commentaires a JSON. JSON5 est un surensemble plus large qui ajoute les commentaires, les virgules finales, les cles sans guillemets, les nombres hexadecimaux, les chaines multilignes et les valeurs numeriques speciales. Le tsconfig.json de TypeScript et les settings.json de VS Code utilisent JSONC, tandis que Babel et d'autres outils utilisent le JSON5 complet.
JSON5 est-il identique a YAML ?
Non. JSON5 reste proche de la syntaxe JSON avec de petits ajouts ergonomiques. YAML est un format completement different avec une structure basee sur l'indentation, des ancres et beaucoup plus de fonctionnalites. JSON5 est plus facile a convertir en JSON car c'est un surensemble strict. La conversion YAML vers JSON peut etre avec perte car YAML supporte des types de donnees que JSON ne supporte pas.