Qu'est-ce que le format de fichier JSON ?
Les fichiers avec l'extension .json contiennent des données stockées au format texte brut, utilisant une notation dérivée d'un sous-ensemble de JavaScript, avec un encodage UTF-8. La description officielle actuelle du format est ECMA-404 et IETF RFC 8259 (2017), qui a remplacé l'ancien RFC 4627. Entre autres utilisations, le .json est largement utilisé pour transférer des informations sur les réseaux et pour stocker la configuration, les paramètres et l'état sérialisé des applications.
Un document .json peut contenir :
- Des chaînes de caractères (Strings),
- Des nombres (virgule flottante double précision IEEE 754),
- Des valeurs booléennes (
trueetfalse), null,- Des tableaux (Arrays) des éléments ci-dessus,
- Des objets (Object - mappages clé-valeur).
Les objets et les tableaux peuvent être imbriqués sur plusieurs niveaux. Bien que la syntaxe des fichiers .json soit basée sur JavaScript, ils sont utilisés au sein d'applications écrites dans pratiquement tous les langages de programmation. En JavaScript, l'analyse (parsing) et la sérialisation sont gérées par les méthodes intégrées JSON.parse() et JSON.stringify(), disponibles depuis ECMAScript 5 - aucune bibliothèque externe n'est requise. Le format ne prend pas en charge les commentaires. Les formats de données textuels apparentés incluent YAML, XML et CSV.
Sécurité et sûreté
RISQUE : LOWUn fichier JSON est une donnée pure - il ne peut pas contenir ou exécuter de code, donc l'ouvrir dans un éditeur est sûr. Les risques sont informationnels : les exports de données contiennent souvent des données privées, des clés d'API ou des jetons de session (ne collez pas de tels fichiers dans des visualiseurs en ligne et ne les partagez pas) ; et pour les développeurs, l'analyse d'un JSON non fiable avec eval() au lieu de JSON.parse(), ou des fichiers surdimensionnés utilisés pour le déni de service, sont des pièges classiques. Attention aux doubles extensions (.json.exe) dans les téléchargements.
Détails du format
en brefProgrammes qui ouvrent les fichiers JSON
Détails techniques
spécifications approfondies| Type MIME | application/json |
| Encodage des caractères | UTF-8 ; le RFC 8259 impose l'UTF-8 sans BOM pour l'échange réseau |
| Signature de fichier (octets magiques) | Aucune - texte brut ; un document valide commence par « { » (objet) ou « [ » (tableau), éventuellement précédé d'espaces |
| Types de données pris en charge | chaîne, nombre, booléen (true/false), null, tableau, objet |
| Représentation des nombres | Virgule flottante IEEE 754 double précision (64 bits) ; la spécification ne définit pas de type entier distinct |
| Encodage des chaînes | Unicode ; les caractères non-ASCII peuvent apparaître en UTF-8 littéral ou sous forme de séquences d'échappement à quatre chiffres hexadécimaux \uXXXX |
| Support des commentaires | Aucun - les commentaires sont explicitement exclus de la spécification JSON |
| Espaces blancs | Les espaces blancs non significatifs (espace, tabulation, CR, LF) sont autorisés entre n'importe quels jetons |
| Gestion du BOM | Le RFC 8259 interdit explicitement un BOM UTF-8 au début d'un document d'échange JSON |
| Unicité des clés d'objet | Les clés au sein d'un objet devraient être uniques ; le RFC 8259 n'interdit pas les doublons mais laisse le comportement à la discrétion de l'implémentation |
| Imbrication | Imbrication récursive illimitée d'objets et de tableaux ; la profondeur pratique est limitée par la taille de la pile de l'analyseur |
| API JavaScript intégrée | JSON.parse() et JSON.stringify() sont natifs depuis ECMAScript 5 (2009) ; aucune bibliothèque tierce n'est nécessaire |
| Interopérabilité | Indépendant du langage ; des analyseurs et sérialiseurs existent pour pratiquement tous les principaux langages de programmation |
| Utilisations courantes | Charges utiles d'API REST, fichiers de configuration d'applications, sérialisation de données, lignes de journaux en streaming (JSONL / NDJSON), manifestes d'applications web |
| Publié | 2001 (json.org); first IETF spec RFC 4627 (2006); current RFC 8259 / ECMA-404 (2017) |
| Standard ouvert | Oui · libre de droits |
| Spécification | www.rfc-editor.org |
Conversions JSON
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers JSON.