Qu'est-ce que JSON
JSON est les initiales de JavaScript Object Notation et comme son nom l'indique, il s'agit d'un type de notation permettant de sauvegarder des données. Bien que son nom inclut le langage de programmation Javascript, la vérité est qu'il ne lui est pas exclusif et est utilisé dans de nombreux autres langages de programmation, que ce soit pour le script, le backend, le frontend, le développement d'APP, etc.
Aujourd'hui, nous parlerons de
Dans cet article, nous apprendrons les bases de JSON, quels sont ses avantages, quelles applications il a dans le monde de la technologie et plus précisément de la programmation et nous finirons par analyser certains de ses inconvénients et alternatives qui existent.
Applications du format JSON en programmation
Les développeurs et programmeurs utilisent le format JSON principalement pour 2 tâches : la communication entre différents systèmes et le stockage des informations via des bases de données.
Depuis le développement des systèmes informatiques, la transmission de données entre ordinateurs et différents langages de programmation constitue un défi. Cela nécessitait un type de données standardisé pour tout système informatique.
C’est ainsi qu’est née la notation XML, utilisée globalement avant l’émergence du format JSON. Alors, quels sont les avantages de JSON par rapport à XML ?
Le principal avantage est le temps de traitement. XML est un balisage de balises (très similaire au HTML) qui nécessite la création d'une arborescence de balises pour analyser et comprendre les informations.
Ce temps de traitement n’est pas nécessaire dans le cas du JSON, il est donc bien plus efficace sur des appareils disposant de beaucoup moins de ressources de calcul.
Il existe actuellement plusieurs cas d'application du format JSON en termes de communication entre différents langages de programmation. Un exemple très clair est celui des sites Web.
Les pages Web se composent de deux parties très différentes. La partie client (également connue sous le nom de Frontend) qui correspond à tout ce que nous pouvons voir dans notre navigateur lorsque nous entrons sur un site Web.
La deuxième partie est le serveur (également appelé Backend) qui exploite toute la logique du code et qui communique avec la base de données.
Lorsque nous entrons dans une page Web, notre navigateur communique avec le serveur pour demander la page que nous voulons voir. Cette communication se fait via le format JSON puisque deux langages de programmation très différents (frontend et backend) peuvent communiquer en utilisant un format standard de communication et de transfert de données, en l'occurrence JSON.
La deuxième application de ce type de notation est la persistance des informations dans différents types de bases de données.
Il existe des bases de données non relationnelles (NoSQL) qui utilisent le format JSON pour stocker les données. Un exemple est le populaire MongoDB. Cette base de données utilise ce qu'on appelle des collections, qui sont toujours au format JSON, où les informations sont enregistrées via des paires clé-valeur.
Depuis quelques années, les bases de données SQL permettent également de sauvegarder les informations en notation JSON. Quelques exemples sont MySQL ou PostgreSQL.
Ce type de format permet aux bases de données non relationnelles d'être plus rapides que les bases de données relationnelles puisqu'elles n'ont pas un schéma aussi défini et que le traitement peut être beaucoup plus rapide.
Règles de syntaxe au format JSON
Afin de respecter la normalisation, il est important de respecter une série de règles de syntaxe pour garantir que la notation JSON est correcte.
Chacun des objets est représenté par deux clés, une pour le début et l'autre pour la fin. Un objet peut contenir différentes informations. Prenons un exemple.
Imaginez que vous souhaitiez enregistrer les informations d'un chien. Dans l'objet, nous pourrions mettre le poids de l'animal, l'âge, la couleur des cheveux, la race, entre autres informations. L'objet JSON ressemblerait à ceci :
{"id" : 1, "breed" : "Beagle", "age" : 3, "hair" : "brown", "weight" : 12, "male" : true}
L'identifiant représente un numéro qui identifie sans équivoque le chien. De plus, nous voyons différents types de variables. Certains sont des nombres, d'autres sont du texte, et nous avons même la clé mâle qui reçoit la valeur True, un type de données appelé Booléen.
Tous ces types de données sont reconnus par la grande majorité des langages de programmation, ce qui permet une communication efficace entre les différents systèmes.
Inconvénients de la notation JSON
Jusqu’à présent, nous avons vu les caractéristiques de JSON et comment, grâce à ses capacités, il a largement remplacé le langage de balises XML pour la communication entre systèmes informatiques.
Pour finir, nous verrons quelques exemples d'inconvénients que peut entraîner ce type de format de données.
Il n'a pas de schéma défini
Lorsque l'on travaille par exemple avec des bases de données relationnelles, les données sont stockées dans des tables avec un schéma prédéfini. C'est-à-dire que chaque colonne du tableau a un type de valeur qu'elle peut accepter (texte, nombres, booléens...) et si une valeur est ajoutée qui n'appartient pas au type prédéfini, une erreur apparaîtra.
Il en va de même pour la longueur des informations saisies. D'autres restrictions peuvent également être spécifiées, par exemple que la valeur ne peut pas être nulle ou qu'elle doit être unique.
Lorsque nous travaillons avec JSON, ce schéma n'existe pas, nous pouvons donc mettre n'importe quel type d'informations. Souvent, ce n’est pas un problème puisque nous n’avons pas besoin d’avoir un schéma défini au préalable, mais dans certaines situations, cela peut être un inconvénient.
Par conséquent, sa grande flexibilité peut parfois être un inconvénient et parfois un avantage. Tout dépendra des exigences du projet avec lequel nous travaillons.
Ne permet pas l'utilisation de commentaires
Un autre problème avec JSON est qu’il ne permet pas d’insérer des commentaires. En programmation, il est essentiel de toujours commenter les objets que nous utilisons. De cette manière, les autres utilisateurs pourront parfaitement comprendre les informations que nous envoyons ou le code que nous développons.