Données JSON
Cette section contient une brève description de la manière dont sont structurées les données JSON. Les données JSON sont généralement stockées dans un document (d'instance) JSON mais peuvent aussi être stockées en tant que fragment de données JSON dans un document d'un autre type. Un fragment de données JSON ou un document est une structure de données JSON, qui est largement définie comme ci-dessous.
XMLSpy prend en charge également JSON5, qui est une extension de JSON qui rajoute des extensions minimales ECMScript 5. Voir json5.org pour plus d'informations.
Objets et tableaux JSON
Un document JSON (généralement enregistré avec l'extension de fichier .json) est établi sur les structures de données centrales suivantes :
Objet
Un objet est délimité par des accolades et est une collection désordonnée de zéro ou plus de paires de key:value. Ces paires key:value sont les propriétés de l'objet. La clé doit toujours être une chaîne et doit donc toujours être contenue dans des guillemets. La clé (aussi nommée le nom de la propriété) est séparée de sa valeur par un double-point. Une valeur de propriété peut être de tout type de données JSON (voir liste ci-dessous). Une propriété est séparée de la suivante par une virgule. La liste ci-dessous est un exemple d'un objet présentant trois propriétés (dont toutes ont des valeurs de type atomique) :
{
"emailtype": "home",
"emailaddress": "contact01.home@altova.com",
"citycode": 22
}
Tableau
Un tableau est délimité par des crochets, et est une liste triée de zéro ou plus d'items séparés par des virgules. Ces items peuvent être de tout type de données JSON (voir liste ci-dessous).
Le tableau consistant en deux objets (chacun contenu dans des accolades). Le tableau lui-même est indiqué par des crochets.
[ { "emailtype": "home", "emailaddress": "contact01.office@altova.com", "citycode": 22 }, "emailtype": "office", "emailaddress": "contact01.office@altova.com", "citycode": 22 } ]
|
La liste ci-dessous représente un objet contenant trois paires key:value. Chaque valeur est un tableau qui contient un tuple (séquence). (Un tuple peut être considéré comme étant un tableau unidimensionnel). Les trois items dans chaque tuple sont des types atomiques.
{ "x": [ 1, 2, "abc" ], "y": [ 3, 4, "def" ], "z": [ 5, 6, "ghi" ] }
|
Types de données JSON
Les valeurs de propriété d'objet et les items de tableau peuvent être constitués des types suivants :
•string (doit être contenu dans des guillemets). Une chaîne peut être spécifiée en plus pour posséder un format, comme un format date-heure ou e-mail
•number: un nombre avec une partie fractionnelle ; inclut des entiers
•integer: un nombre sans partie fractionnelle ; un sous-ensemble du type number
•boolean (true/false, non contenu dans des guillemets)
•object: lorsqu'utilisé avec un autre objet, permet d'imbriquer des données
•array: fournit la possibilité de construire des structures plus complexes que ce qui est autorisé par les objets
•null (null, non contenu dans des guillemets)
Exemple of JSON data
Voici un exemple d'un fragment de données JSON. Veuillez noter comment le document est structuré en objets et en tableaux. De même, notez le type de données des valeurs-clé ; les valeurs de chaîne sont entre guillemets, les autres types apparaissent en vert.
{
"first": "Jason",
"last": "Jones"
"isManager": true,
"age": 35,
"address": {
"street": "Jason Avenue",
"city": "Jasonville",
"state": "JS",
"postcode": "JS12 ON34"
},
"phone": [
{
"type": "home",
"number": "12 3456-7890"
},
{
"type": "office",
"number": "789 012-34567"
}
],
"children": [],
"partner": null
}
Certaines différences entre JSON5 et JSON
JSON5 est un sous-ensemble strict de JavaScript, s'ajoute aux nouveaux types de données JSON et fonctionne avec tous les contenus JSON existants. Vous trouverez ci-dessous quelques-unes des différences principales :
•JSON5 prend en charge les commentaires. Les commentaires sont délimités comme suit : // comment // ou /* comment */.
•Dans JSON5, les paires de clé key:value de doivent pas être contenues entre guillemets.
•Dans JSON5, les chaînes peuvent être rédigées sur plusieurs lignes.
•Les documents JSON5 peuvent être validés par rapport aux schémas JSON .