Comprendre JSON : structure et règles de syntaxe
Auteur : Rédaction Domeny.ForSale Publié le
En bref : JSON est un format textuel de stockage et d’échange de données, utilisé notamment dans les applications, les fichiers de configuration et les communications avec les serveurs. Il organise les informations à l’aide de noms, de valeurs et de listes, pour que les personnes comme les programmes puissent les lire. Ce n’est pas un langage de programmation : il décrit des données, mais ne contient pas d’instructions à exécuter.
À quoi sert JSON ?
Le nom JSON vient de JavaScript Object Notation. Bien que ce format soit issu de la notation des objets en JavaScript, il est indépendant de ce langage. Il est notamment pris en charge par Python, Java, PHP et C#.
JSON est souvent utilisé dans les API, des interfaces permettant aux programmes de communiquer entre eux. Lorsqu’une application de boutique récupère sur un serveur le nom, le prix et la disponibilité d’un produit, elle peut recevoir la réponse dans ce format. L’application lit les valeurs et les utilise pour afficher la fiche du produit.
Ce même format sert à enregistrer les paramètres de programmes, à exporter des données ou à transmettre des événements entre services. Les fichiers portent généralement l’extension .json, mais les données JSON peuvent aussi être transmises sans créer de fichier distinct.
À quoi ressemble JSON et comment le lire ?
De nombreux documents JSON reposent sur un objet, c’est-à-dire un ensemble de paires « nom–valeur ». Le nom est également appelé clé. L’exemple suivant décrit un produit dans une boutique :
{
"nom": "Mug en céramique",
"prix": 39.90,
"devise": "PLN",
"disponible": true,
"couleurs": ["blanc", "vert"],
"fabricant": {
"nom": "Atelier d’exemple"
},
"code_promotionnel": null
}
Les accolades {} délimitent un objet. Les deux-points séparent la clé de sa valeur, et la virgule sépare les paires successives. Dans cet exemple, la clé nom a pour valeur le texte Mug en céramique, tandis que prix a une valeur numérique.
Les crochets [] délimitent un tableau, c’est-à-dire une liste ordonnée de valeurs. La liste couleurs contient deux textes. Quant à fabricant, c’est un objet placé à l’intérieur d’un autre objet : cette imbrication permet de regrouper des informations liées.
JSON accepte six types de valeurs :
- une chaîne de caractères, écrite entre guillemets doubles, par exemple
"PLN"; - un nombre, par exemple
39.90ou12; - un booléen :
trueoufalse; null, qui indique explicitement une absence de valeur ;- un objet, délimité par
{}; - un tableau, délimité par
[].
Un document JSON n’est pas nécessairement un objet. Il peut aussi être un tableau, une chaîne de caractères, un nombre ou toute autre valeur autorisée, même si une API donnée peut imposer une structure précise.
Règles d’écriture et erreurs courantes
JSON obéit à une syntaxe stricte. Les clés des objets et les valeurs textuelles doivent être écrites entre guillemets doubles : les apostrophes ne peuvent pas les remplacer. Les nombres décimaux s’écrivent avec un point, et non une virgule, indépendamment des conventions polonaises d’écriture des nombres.
Il ne faut pas ajouter de virgule après le dernier élément d’un objet ou d’un tableau. Le format JSON standard ne prend pas non plus en charge les commentaires. L’écriture suivante est donc incorrecte :
{'nom': 'Mug', 'prix': 39.90,}
Voici la version correcte :
{"nom": "Mug", "prix": 39.90}
En dehors des chaînes de caractères, les espaces, les indentations et les sauts de ligne facilitent la lecture sans modifier le sens des données. En revanche, un guillemet à l’intérieur d’une chaîne doit être précédé d’une barre oblique inverse, par exemple "Mug \"Poranek\"". La barre oblique inverse elle-même s’écrit \\.
Une syntaxe correcte ne garantit pas que les données soient correctes. La valeur "39.90" est une chaîne de caractères, tandis que 39.90 est un nombre. Les deux sont autorisées en JSON, mais un programme qui attend un nombre peut refuser une chaîne de caractères. De même, null, une chaîne vide "" et l’absence d’une clé sont des situations différentes, dont la signification dépend de l’application.
Évitez également de répéter le même nom de clé dans un objet. Les programmes peuvent interpréter ces données différemment, par exemple en ne conservant que la dernière valeur.
Comment ouvrir et vérifier un fichier JSON ?
Un simple éditeur de texte permet d’ouvrir un fichier JSON. Un éditeur de code sera plus pratique : il colore la syntaxe, organise l’indentation et signale les erreurs. Pour lire le fichier, vous n’avez pas besoin de lancer un serveur ni d’installer un environnement de développement.
Si l’application ne parvient pas à utiliser le fichier, procédez aux vérifications dans cet ordre :
- Faites une copie du fichier avant de le modifier.
- Vérifiez la syntaxe avec un outil de validation JSON : guillemets, virgules et fermeture des accolades et des crochets.
- Comparez les noms des champs et les types des valeurs avec la documentation de l’application.
- Vérifiez les champs obligatoires et les valeurs autorisées, par exemple le code de devise ou le format de date.
JSON ne possède pas de type spécifique pour les dates. Celles-ci sont donc souvent écrites sous forme de texte selon une convention définie. Les exigences de structure peuvent être décrites à l’aide de JSON Schema, qui permet de définir notamment les champs obligatoires et leurs types.
Ne collez pas de fichiers contenant des mots de passe, des clés API ou des données personnelles dans des validateurs en ligne choisis au hasard. Vérifiez ces données localement avec un outil de confiance.
Quand choisir JSON ou un autre format ?
JSON convient aux données dont la structure est imbriquée : une commande contient un client, une adresse et une liste de produits. Pour un tableau simple destiné à un tableur, CSV peut être plus pratique : ce format enregistre les données en lignes et en colonnes.
Lors d’une intégration avec un service tiers, le choix du format n’est pas libre : c’est la documentation du service qui le détermine. Partez d’un exemple de message attendu par le service, modifiez quelques valeurs et vérifiez à la fois la syntaxe et la conformité des champs. Vous pourrez ainsi distinguer une erreur de syntaxe JSON d’une erreur dans les données attendues par le programme.
À lire aussi : Qu’est-ce qu’un CDN ?
