JavaScript Object Notation est une représentation sans texte ni schéma de données structurées basée sur des paires clé-valeur et des listes ordonnées. Bien que JSON soit dérivé de JavaScript, il est pris en charge de manière native ou via des bibliothèques de la plupart des principaux langages de programmation. JSON est couramment, mais pas exclusivement, utilisé pour échanger des informations entre des clients Web et des serveurs Web.
Au cours des 15 dernières années, JSON est devenu omniprésent sur le Web. Aujourd'hui, il s'agit du format de prédilection de presque tous les services Web accessibles au public. Il est également fréquemment utilisé pour les services Web privés.
La popularité de JSON a également entraîné la prise en charge native de JSON par de nombreuses bases de données. Les bases de données relationnelles telles que PostgreSQL et MySQL sont désormais livrées avec un support natif pour le stockage et l'interrogation des données JSON. Les bases de données NoSQL telles que MongoDB et Neo4j prennent également en charge JSON, bien que MongoDB utilise une version binaire légèrement modifiée de JSON en coulisse.
Dans cet article, nous examinerons rapidement le format JSON et discuterons de son origine, de ses avantages par rapport au XML, de ses inconvénients, de la date à laquelle vous devez l’utiliser et du moment où vous devriez envisager des solutions de remplacement. Mais commençons par plonger dans les détails de ce à quoi JSON ressemble dans la pratique.
Sommaire
Exemple JSON
Voici un exemple de données encodées en JSON:
“Prenom”: “Jonathan”,
"Nom": "Freeman",
“LoginCount”: 4,
“IsWriter”: vrai,
"marche avec": [“Spantree Technology Group”, “InfoWorld”],
"animaux domestiques":[[[[
"Nom": "Lilly",
«Type»: «raton laveur»
]
La structure ci-dessus définit clairement certains attributs d'une personne. Il inclut un prénom et un nom de famille, le nombre de fois que la personne s’est connectée, si elle est un écrivain, une liste des sociétés avec lesquelles elle travaille et une liste de ses animaux domestiques (un seul dans ce cas). Une structure comme celle ci-dessus peut être transmise d'un serveur à un navigateur Web ou à une application mobile, qui effectuera ensuite une action telle que l'affichage des données ou leur sauvegarde pour une référence ultérieure.
JSON est un format de données générique comportant un nombre minimal de types de valeur: chaînes, nombres, booléens, listes, objets et null. Bien que la notation soit un sous-ensemble de JavaScript, ces types sont représentés dans tous les langages de programmation courants, ce qui fait de JSON un bon candidat pour la transmission de données malgré les lacunes linguistiques.
Fichiers JSON
Les données JSON sont stockées dans des fichiers se terminant par l'extension .json. Conformément à la philosophie lisible par l’homme de JSON, il s’agit simplement de fichiers texte qui peuvent être facilement ouverts et examinés. Comme le explique le blog de SQLizer, c’est également une des clés de l’interopérabilité plus étendue de JSON, dans la mesure où pratiquement toutes les langues que vous pouvez nommer peuvent lire et traiter les fichiers de texte brut et qu’ils sont faciles à envoyer sur Internet.
Pourquoi devrais-je utiliser JSON?
Pour comprendre l’utilité et l’importance de JSON, nous devons comprendre un peu l’histoire de l’interactivité sur le Web.
Au début des années 2000, l'interactivité sur le Web a commencé à se transformer. À l'époque, le navigateur servait principalement de client stupide pour afficher des informations, et le serveur effectuait tout le travail nécessaire pour préparer le contenu en vue de son affichage. Lorsqu'un utilisateur cliquait sur un lien ou un bouton dans le navigateur, une demande était envoyée au serveur, le serveur préparait les informations nécessaires au format HTML et le navigateur rendait le code HTML sous la forme d'une nouvelle page. Ce modèle était lent et inefficace, obligeant le navigateur à restituer tout le contenu de la page, même si seule une section de la page avait été modifiée.
Les recharges d'une page complète étant coûteuses, les développeurs Web se sont tournés vers les nouvelles technologies pour améliorer l'expérience globale des utilisateurs. Pendant ce temps, la possibilité de faire des requêtes Web en arrière-plan pendant l'affichage d'une page, récemment introduite dans Internet Explorer 5, s'avérait être une approche viable pour charger des données de manière incrémentielle à des fins d'affichage. Au lieu de recharger tout le contenu de la page, cliquer sur le bouton d'actualisation déclencherait une requête Web qui se chargerait en arrière-plan. Lorsque le contenu était chargé, les données pouvaient être manipulées, enregistrées et affichées sur la page à l'aide de JavaScript, le langage de programmation universel des navigateurs.
REST vs. SOAP: la connexion JSON
À l'origine, ces données étaient transférées au format XML (voir l'exemple ci-dessous) à l'aide d'un protocole de messagerie appelé SOAP (Simple Object Access Protocol). Mais XML était prolixe et difficile à gérer en JavaScript. JavaScript contenait déjà des objets, qui sont un moyen d’exprimer des données dans le langage. Douglas Crockford a donc pris un sous-ensemble de cette expression en tant que spécification d’un nouveau format d’échange de données et l’a baptisé JSON. JSON était beaucoup plus facile à lire et à analyser pour les navigateurs.
Au cours des années 2000, une autre technologie de services Web, appelée Representational State Transfer, ou REST, a commencé à dépasser SOAP dans le but de transférer des données. L’un des gros avantages de la programmation utilisant Les API REST permettent d’utiliser plusieurs formats de données, pas seulement XML, mais aussi JSON et HTML. Alors que les développeurs Web préféraient JSON au XML, ils préféraient également REST plutôt que SOAP. Comme le dit Kostyantyn Kharchenko sur le blog de Svitla, «le succès de REST est dû, à bien des égards, au format JSON en raison de sa facilité d'utilisation sur diverses plates-formes».
Aujourd'hui, JSON est le standard de facto pour l'échange de données entre des clients Web et mobiles et des services back-end.
JSON vs XML
Comme indiqué ci-dessus, la principale alternative au JSON est XML. Cependant, XML devient de moins en moins répandu dans les nouveaux systèmes et il est facile de comprendre pourquoi. Vous trouverez ci-dessous une version des données que vous avez vues ci-dessus, cette fois en XML:
Jonathan
Homme libre
4
vrai
Groupe de technologie Spantree
InfoWorld
Lilly
Raton laveur
En plus d'être plus verbeux (exactement deux fois plus verbeux dans ce cas), XML introduit également une certaine ambiguïté lors de l'analyse syntaxique dans une structure de données compatible JavaScript. La conversion de XML en objet JavaScript peut prendre de quelques dizaines à plusieurs centaines de lignes de code et nécessite en fin de compte une personnalisation en fonction de l'objet spécifique analysé. La conversion de JSON en objet JavaScript prend une ligne de code et ne nécessite aucune connaissance préalable de l’objet analysé.
Limitations de JSON
Bien que JSON soit un format de données relativement concis et flexible, facile à utiliser dans de nombreux langages de programmation, le format présente certains inconvénients. Voici les cinq principales limitations:
- Pas de schéma. D'une part, cela signifie que vous disposez d'une flexibilité totale pour représenter les données comme vous le souhaitez. D'autre part, cela signifie que vous pourriez très facilement créer accidentellement des données difformes.
- Un seul type de nombre: le format à virgule flottante double précision IEEE-754. C’est une bonne idée, mais cela signifie simplement que vous ne pouvez pas tirer parti des types de nombres divers et nuancés disponibles dans de nombreux langages de programmation.
- Aucun type de date. Cette omission signifie que les développeurs doivent recourir à des représentations sous forme de chaînes de dates, ce qui entraîne des différences de format, ou doivent les représenter sous forme de millisecondes depuis l'époque (1er janvier 1970).
- Sans commentaires. Cela rend impossible l'annotation des champs en ligne, ce qui nécessite une documentation supplémentaire et augmente le risque de malentendu.
- Verbosité. JSON est moins détaillé que XML, mais ce n’est pas le format d’échange de données le plus concis. Pour les services à volume élevé ou spécialisés, vous souhaiterez utiliser des formats de données plus efficaces.
Quand devrais-je utiliser JSON?
Si vous écrivez un logiciel qui communique avec un navigateur ou une application mobile native, vous devez utiliser JSON comme format de données. L'utilisation d'un format tel que XML est un choix obsolète et un drapeau rouge pour les talents frontaux et mobiles que vous aimeriez attirer.
Dans le cas d'une communication serveur à serveur, il peut être préférable d'utiliser un cadre de sérialisation tel qu'Apache Avro ou Apache Thrift. JSON n’est pas un mauvais choix ici, et pourrait toujours être exactement ce dont vous avez besoin, mais la réponse n’est pas aussi claire que pour la communication Web et mobile.
Si vous utilisez des bases de données NoSQL, vous êtes pratiquement bloqué par tout ce que la base de données vous donne. Dans les bases de données relationnelles prenant en charge le type JSON, une bonne règle consiste à l'utiliser le moins possible. Les bases de données relationnelles ont été ajustées pour des données structurées adaptées à un schéma particulier. Bien que la plupart prennent désormais en charge des données plus flexibles sous la forme de JSON, vous pouvez vous attendre à un impact négatif sur les performances lorsque vous recherchez des propriétés dans ces objets JSON.
JSON est le format de facto omniprésent pour l'envoi de données entre des serveurs Web, des navigateurs Web et des applications mobiles. Sa conception simple et sa flexibilité le rendent facile à lire et à comprendre, et dans la plupart des cas, facile à manipuler dans le langage de programmation de votre choix. L’absence de schéma strict permet une souplesse de format, mais il est parfois difficile de s’assurer que vous lisez et écrivez correctement le code JSON.
Analyseur JSON
La partie du code d’une application qui transforme les données stockées au format JSON en un format que l’application peut utiliser est appelée un analyseur. Comme vous vous en doutez, JavaScript comprend un analyseur natif, la méthode JSON.parse ().
Vous devrez peut-être travailler un peu plus longtemps pour utiliser JSON dans des langages fortement typés tels que Scala ou Elm, mais l'adoption généralisée de JSON signifie qu'il existe des bibliothèques et des utilitaires pour vous aider à traverser toutes les parties les plus difficiles.
Le site Web json.org comprend une liste complète de bibliothèques de codes que vous pouvez utiliser pour analyser, générer et manipuler JSON, dans des langages aussi divers que Python, C # et COBOL.
Utilitaires JSON
Si vous souhaitez manipuler ou examiner directement des données codées JSON, sans écrire vous-même le code, de nombreux utilitaires en ligne peuvent vous aider. Tous les équivalents programmatiques des bibliothèques de code liées à ci-dessus, mais vous pouvez couper et coller du code JSON dans ces outils basés sur un navigateur pour vous aider à mieux comprendre JSON ou à effectuer une analyse rapide:
- JSON Formatter: JSONLint formatera et validera du code JSON arbitraire.
- JSON Viewer: Stack.hu a un site qui créera un arbre interactif pour vous aider à comprendre la structure de votre code JSON.
- JSON Beautifier: Si vous voulez «imprimer» votre code JSON, avec la coloration syntaxique, etc., Prettydiff peut vous aider.
- Convertisseur JSON: Besoin de déplacer rapidement les données d'un format JSON vers autre chose? Convertcsv.com propose des outils permettant de convertir JSON en CSV (pouvant être ensuite ouvert dans Excel) ou XML.
Tutoriel JSON
Êtes-vous prêt à plonger et à en apprendre davantage sur l'utilisation du JSON dans vos applications interactives? Le réseau de développeurs Mozilla propose un excellent didacticiel qui vous permettra de vous familiariser avec JSON et JavaScript. Si vous êtes prêt à passer à d’autres langues, consultez le didacticiel sur l’utilisation de JSON avec Java (de Baeldung), Python (de DataCamp) ou C # (dans l’aide de Software Testing). Bonne chance!
Josh Fruhlinger a contribué à cet article.
Cette histoire, "Qu'est-ce que JSON? Un meilleur format pour l'échange de données" a été initialement publiée par
InfoWorld.
Commentaires
Laisser un commentaire