- JSON5 est un format qui étend le format de fichier JSON afin de le rendre plus facile à écrire et à maintenir par des humains
- Il n’est pas destiné à la communication entre machines
- Lancé en 2012, il dépasse les 65 millions de téléchargements par semaine en 2022 et fait partie du top 0,1 % des packages les plus dépendus sur npm
- Il est adopté par de grands projets comme Chromium, Next.js, Babel, Retool et WebStorm
- Il est pris en charge nativement sur les plateformes Apple comme macOS et iOS
- Caractéristiques de JSON5
- C’est un surensemble de JSON qui inclut une partie de la syntaxe d’ECMAScript 5.1
- Un fichier JSON5 est toujours un fichier ES5 valide
- Fonctionnalités étendues d’ECMAScript 5.1
- Objets
- Les clés d’objet peuvent être des
IdentifierName d’ECMAScript 5.1
- Une unique virgule finale est autorisée dans les objets
- Tableaux
- Une unique virgule finale est autorisée dans les tableaux
- Chaînes
- Les chaînes peuvent être entourées de guillemets simples
- Elles peuvent s’étendre sur plusieurs lignes en échappant le caractère de fin de ligne
- Elles peuvent contenir des séquences d’échappement de caractères
- Nombres
- Ils peuvent être exprimés en hexadécimal
- Ils peuvent avoir un point décimal en tête ou en fin
- Ils peuvent inclure l’infini positif, l’infini négatif et
NaN selon la norme IEEE 754
- Ils peuvent commencer par un signe plus explicite
- Commentaires
- Les commentaires sur une ligne et sur plusieurs lignes sont autorisés
- Espaces
- Des caractères d’espacement supplémentaires sont autorisés
- API
JSON5.parse() : analyse une chaîne JSON5 pour produire une valeur ou un objet JavaScript
JSON5.stringify() : convertit une valeur JavaScript en chaîne JSON5
- CLI
- Fournit une CLI pour convertir JSON5 en JSON ou valider la syntaxe d’un document JSON5
- Compatibilité ECMAScript
- JSON5 a été conçu pour être totalement compatible avec ES5, mais les caractères U+2028 et U+2029 ne sont pas autorisés en ES5
- Ces caractères ont été autorisés dans ES2019, ce qui rend JSON et JSON5 entièrement compatibles avec ES2019
- Licence
- Distribué sous licence MIT
2 commentaires
Ce que j’ai appris en créant JSON5 : ignorez les détracteurs
Avis Hacker News