DE FR IT

JSON

Informations générales

Titre JavaScript Object Notation
Catégorie Données structurées
Abréviation JSON
Extension de fichier .json
Mime Type

application/json (Legacy: text/json, text/javascript)

Pronom PUID x-fmt/817
Version JSON est spécifié dans l’ECMA-404. Il existe une spécification IETF RFC du format de fichier JSON et elle est généralement référencée : RCF8259 [2]. Pour GeoJSON : RFC 7946 [3]

  

Description

JSON est un format purement textuel. Grâce à son fort ancrage dans les applications web, JSON est largement diffusé. JSON a été créé pour pouvoir transmettre et traiter des données structurées le plus rapidement possible sur le web (serveur - client). Les sous-types de JSON sont entre autres GeoJSON et TopoJSON pour l'échange de données géographiques (p. ex. points de coordonnées). Une description détaillée du format est disponible dans [4] [5].

    

Evaluation

Ouverture du format: 4
JSON est spécifié dans l'ECMA-404. [1] Une spécification RFC du format de fichier JSON existe et est généralement référencée : RCF8259 [2].

Licence libre4
Il n'existe aucune licence sur le format texte ou les encodages.

Diffusion: 4
JSON est utilisé pour le transfert de données entre le serveur et le client dans les applications web. Il est par exemple utilisé pour les formulaires web ou les plates-formes de discussion comme Twitter. Une autre application est l'échange de données géographiques via les sous-formats GeoJSON et TopoJSON.

Fonctionnalités: 2
Lors de la migration des formats de texte brut CSV et XML vers JSON, des types de données complexes sont perdus (p. ex. TIME, DATE). Dans le cas du XML, les types définis par l'utilisateur sont également perdus. Le contenu de ces types de données complexes est converti en un format de données primitif, par exemple une chaîne de caractères (string).

En outre, la distinction entre les attributs et les éléments disparaît lorsque le XML est converti en JSON. La mise en page du XML et du CSV est également perdue lors de la migration. Toutefois, les différences de mise en page ne jouent qu'un rôle mineur dans les fonctionnalités de ces formats.

Il est possible de convertir JSON en XML et, dans une moindre mesure, en CSV. Toutefois, dans le cas de JSON imbriqués (nested), plusieurs CSV sont nécessaires pour représenter le contenu.

Implémentation: 4
JSON peut être créé et lu avec n'importe quel éditeur de texte. Des éditeurs plus performants comme Notepad++, Altova XMLSpy ou des environnements de développement de logiciels (IDE) montrent également la structure de JSON et détectent les erreurs qui s'y trouvent.

Densité de mémorisation: 4
Avec JSON, des taux de compression d'un facteur 4 à 10 sont possibles, en fonction de l'algorithme de compression et de la redondance des données et des éléments de structure.

Vérifiabilité: 3
La norme ECMA-404 limite JSON en termes de structure et de contenu de manière à pouvoir distinguer JSON des autres formats de texte. Ainsi, JSON ne prend en charge que les types de données primitifs, le codage des caractères est toujours en Unicode, la structure est une carte et la syntaxe correspond à un objet JavaScript. La validation du format est possible via un analyseur syntaxique JSON, par exemple la méthode JavaScript JSON.parse() ou via des applications.
En plus d'une validation du format, une validation du schéma peut également être effectuée si un fichier de schéma est disponible. Lors d'une validation de schéma, on vérifie si la structure JSON correspond à une structure préétablie et définie par l'utilisateur. On peut comparer cela à la validation d'un fichier .xml sur la base d'un fichier de schéma .xsd.

Bonnes pratiques: 2
Pur format texte ou format de texte brut, JSON devrait bien se prêter à l'archivage numérique à long terme. Comme ce format n'a été spécifié qu'aux alentours de l'an 2000 et qu'il n'a remplacé XML comme format privilégié pour l'échange de données qu'au fil du temps, on ne dispose encore que peu d'expérience en matière d'archivage à long terme de JSON. Cependant, étant donné que JSON peut être converti en XML sans perte de données et que XML est un format établi pour l'archivage à long terme (p. ex. en tant que composant de SIARD), cela permet d'attribuer une note élevée dans les bonnes pratiques.

Perspectives: 3
JSON s'est établi comme format d'échange de données. Son utilisation est appelée à progresser. Pour l'instant, il n’est pas près de perdre sa place de format d'échange de données le plus utilisé.

Classe de formats: B
JSON est apparu vers l'an 2000. Il est très diffusé grâce à son utilisation comme format d'échange de données sur internet. Son importance ne cesse donc de croître.

 

Analyse

Comparaison entre JSON et XML [5]

Pour le stockage de grandes quantités de données, XML est préférable à JSON. XML offre la possibilité de séparer structurellement les données et les métadonnées sous forme d'éléments et d'attributs. XML autorise également les commentaires sur les contenus. Avec JSON, il n'est pas clair dès le départ, quels éléments représentent la valeur et lesquels représentent les métadonnées.

 

Tableau 1 : description de données dans XML (avec attributs et commentaires) et JSON.

Grâce aux tableaux, les types de données primitifs peuvent être empaquetés plus efficacement dans les fichiers JSON que dans les fichiers XML. En raison de l'origine du format en JavaScript, les données JSON peuvent en outre être traitées plus rapidement par les applications web et la plupart des langages de programmation.

 

Tableau 2 : conversion d'un tableau dans XML (à l'aide d'attributs) et JSON

Les principales différences entre JSON et XML sont les suivantes :

JSON XML
Uniquement Unicode Différents encodages (p. ex. ISO-8859-1)
  Prend en charge attributs et commentaires
Types de données primitifs : nombres, caractères, booléens, null Également types de données complexes comme date
Données en carte et en tableaux Données en arbre

Tableau 3 : comparaison entre JSON et XML

JSON permet également de stocker et de transférer indirectement des fichiers binaires (image, audio, vidéo, etc.). Pour ce faire, les données binaires doivent être encodées, par exemple en Base64, et consignées dans le fichier JSON sous forme de chaîne de caractères Unicode. L'encodage (p. ex. Base 64) doit également être consigné dans JSON afin de pouvoir créer ultérieurement des fichiers binaires à partir des données. Comme il existe de meilleures méthodes pour transférer des fichiers binaires, il n'est pas recommandé d'utiliser JSON.

    

Conclusion

JSON est un format développé pour échanger efficacement des données sur internet. JSON est limité en ce qui concerne l’archivage par rapport à XML, car aucun attribut ne peut être attribué aux éléments de données. De plus, JSON n'autorise pas les commentaires. JSON ne prend pas en charge les types de données complexes. Convertir ou exporter du XML ou des bases de données en JSON n'a donc pas de sens. Un fichier JSON peut toutefois être archivé sans conversion, car il reste lisible à long terme en tant que pur format texte ou format de texte brut.

    

Références

Standard ECMA-404 : The JSON Data Interchange Syntax, 2nd edition, December 2017 (ecma-international.org)
https://www.ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf

RCF 8259 - The JavaScript Object Notation (JSON) Data Interchange Format (ietf.org)
https://datatracker.ietf.org/doc/html/rfc8259

    

Bibliographie

[1] ECMA International, „The JSON Data Interchange Syntax,“ Genève.

[2] Internet Engineering Task Force (IETF), „The JavaScript Object Notation (JSON) Data Interchange Format,“

[3] Internet Engineering Task Force (IETF), „The GeoJSON Format,“ en ligne, 2016.

[4] Library of Congress, „JSON (JavaScript Object Notation),“

[5] Wikipedia, „JSON,“ Wikipedia, 17 9 2023 
https://en.wikipedia.org/wiki/JSON

    

Catalogue des formats de fichiers pour l'archivage version 7.0, juin 2024