Fiche technique | |
---|---|
Type de produit : | Format de données |
Auteur : | Douglas Crockford |
Date de publication : | 2002 |
Site Web : | https://json.org/ |
Introduction
Le JSON est un format de données ASCII, créé par Douglas Crockford, utilisé principalement pour communiquer des informations en JavaScript. Le nom de JSON provient de l'abréviation de l'anglicisme «JavaScript Object Notation».
Voici ses principales caractéristiques :
- Simplicité et légèreté
- JSON est facile à lire et à écrire, tant pour les humains que pour les machines.
- Il utilise une syntaxe simple avec des paires clef-valeur, ce qui rend son utilisation intuitive.
- Indépendant du langage
- JSON est basé sur une sous-ensemble de la notation JavaScript, mais il est indépendant de tout langage de programmation.
- Il est pris en charge par la plupart des langages de programmation modernes (Python, C#, Java,...).
- Structure hiérarchiqu : JSON permet de représenter des données de manière hiérarchique en imbriquant des objets et des tableaux, facilitant ainsi la modélisation de structures complexes.
- Types de données simples : JSON prend en charge quelques types de données de base :
- Objets : Un ensemble de paires clé-valeur, où chaque clé est une chaîne de caractères, et chaque valeur peut être un autre type JSON.
- Tableaux : Une liste ordonnée de valeurs.
- Chaînes de caractères : Les chaînes sont entourées de guillemets doubles.
- Nombres : Incluent les entiers et les nombres à virgule flottante.
- Booléens : Les valeurs true et false.
- Null : Une valeur nulle (représentée par null).
- Format textuel : JSON est un format de texte brut, ce qui le rend facilement transportable et lisible via des fichiers, des flux réseau ou des bases de données.
- Facilité de sérialisation et de désérialisation : JSON est couramment utilisé pour sérialiser des objets dans divers langages de programmation, ce qui permet de les convertir en texte pour les transmettre ou les entreposer, puis de les reconstituer dans le format original.
- Standard ouvert : JSON est un standard ouvert, défini dans la spécification RFC 8259, ce qui en fait une technologie largement adoptée pour l'échange de données.
- Absence de commentaires : Contrairement à certains formats comme XML, JSON ne supporte pas les commentaires, ce qui limite son usage pour inclure des annotations explicatives dans les données.
- Interopérabilité : JSON est souvent utilisé pour les API REST en tant que format d'échange de données, ce qui le rend central dans les communications Web.
- Optimisé pour le Web : JSON est très bien adapté aux applications web en raison de sa compatibilité naturelle avec JavaScript.
Structure de données
Les données sont regroupés entre accolade «{» et «}» avec du côté gauche la clef et du côté droite la valeur, séparé par un «:». S'il y a plus d'une valeur, ils sont séparés par une virgule. De plus, du côté droite, une valeur peut être également une clef et une valeur ! Ainsi, on pourra avoir arbre de données se construisant de cette manière. Donc, en théorie on peut entreposer 3 types de données :
- Des objets,
- Des tableaux,
- Des valeurs génériques de type de booléen, de nombre, chaîne de caractères ou nulle.
Remarque
- Ce format est parfois confondu avec le format de sérialisation de PHP, lequel remplace la clef par une longueur de données.
Exemple
L'exemple suivant montre une structure type de format de données JSON :
- {
- "clef": {
- "clefsecondaire1": "valeursecondaire1",
- "clefsecondaire2": "valeursecondaire2",
- "clefsecondaire3": {
- "cleftertiaire1": [
- { "clef1": "valeura", "clef2": "valeura" },
- { "clef1": "valeurb", "clef22": "valeurb" },
- { "clef1": "valeurc", "clef2": "valeurc" }
- ]
- }
- }
- }
Bibliothèques ou cadre d'application
Voici les principales bibliothèques, cadre d'application pour manipuler le format JSON :
Langage | Description |
---|---|
C++ | RapidJSON, JsonCpp |
C# | System.Text.Json, Newtonsoft.Json, Utf8Json |
Delphi | System.JSON (unité natif) |
Free Pascal | fpjson (natif) |
Java | Jackson |
Haskell | Aeson |
Perl | JSON::XS |
PHP | json_encode et json_decode (fonctions natives) |
Python | simplejson |
Ruby | Oj (Optimized JSON) |
Turbo Pascal | JSONLIB-TP |
VB.NET | Newtonsoft.Json |
Code source
Voici des exemples de code source d'utilitaires pour manipuler les JSON :
Lien | Langage de programmation | Description | Projet | Syntaxe |
---|---|---|---|---|
BEAUTIFY.PAS | Free Pascal, Turbo Pascal | Cette commande permet de rendre lisible le formatage d'un fichier de format JSON. | Corail | BEAUTIFY |
DBF2JSON.PAS | Free Pascal, Turbo Pascal | Cette commande permet de convertir un fichier .DBF (DBase III) en format JSON. | Corail | DBF2JSON |
DIR.PAS | Free Pascal, Turbo Pascal | Cette commande permet de sortir la liste d'un répertoire en format JSON (/FORMAT:JSON). | Corail | DIR |
HEXDUMP.PAS | Free Pascal, Turbo Pascal | Cette commande permet d'afficher le contenu d'un fichier en format hexadécimal lui-même dans un format JSON (/FORMAT:JSON). | Corail | HEXDUMP |
Voir également
Langage de programmation - JavaScript - Accueil