Rappels sur JSON#
JavaScript Object Notation
- Créé en 2005
- Format d'échange de données structurées léger
- Schéma des données non connu
- contenu dans les données
- Basé sur deux notions :
- collection de couples clé/valeur
- liste de valeurs ordonnées
Syntaxe et types en JSON#
- Similaire à du JavaScript uniquement pour les données
- On parle de littéral
- Deux types atomiques (
string
etnumber
) - Trois constantes (
true
,false
,null
) - Structures possibles :
- objet (couples clé/valeur) :
{}
{ "nom": "doe", "prenom": "jon" }
- tableau (collection de valeurs) :
[]
[ 1, 5, 10]
- une valeur dans un objet ou dans un tableau peut être elle-même un littéral
- objet (couples clé/valeur) :
Important
C'est le format de données utilisé dans la CLI de MongoDB et pour les requêtes des utilisateurs.
Validation du JSON#
Validation possible du JSON à l'aide de jsonlint.com/
{
"name": "John Doe",
"age": 42,
"food": ["pizza", "cake"],
"wife": {
"name": "Jane Doe",
"age": 42
}
}
Note
Il existe aussi des moyens de définir des structures de données spécifiques en JSON (notion de schéma de donneés) et de valider un document d'après ce schéma Voir https://json-schema.org/
Compléments#
BSON (Binary-JSON)#
- Une évolution de
JSON
au format binaire - Représente les mêmes structures données et tableaux associatifs
- Quelques différences
- types supplémentaires (identifiant spécifique, binaire, date, ...)
- Distinction entier et réel
Important
C'est le format de données utilisé dans MongoDB pour le stockage et sur le réseau.
JSON5 / HJSON#
JSON5 et HJSON sont deux extensions de la syntaxe du JSON, destinées à contourner les limitations de ce dernier.
- Les noms des champs ne sont plus entre guillemets
- Support des commentaires (sur une ou plusieurs lignes)
- Espaces blancs supplémentaires autorisés
- Les chaînes de caractères peuvent être contenus entre apostrophes
Important
C'est un format de données identique à la syntaxe objet de JavaScript (mais sans instructions).