WebDev 21 : Les web services

Manipuler un fichier JSON dans WebDev

TESTEZ LINKEDIN LEARNING GRATUITEMENT ET SANS ENGAGEMENT

Tester maintenant Afficher tous les abonnements
Il existe plusieurs méthodes pour manipuler un fichier JSON. Vous allez commencer par prendre en main l'une d'entre elles.
08:33

Transcription

Après le format XML, nous allons voir comment manipuler des fichiers Json avec WebDev. Alors, vous allez voir que c'est moins évident que le XML. L'intégration n'est pas faite de la même manière, il y a un petit peu d'amélioration dans la version 21, mais on a pas, de toutes manières, autant de fonctions pour manipuler le Json qu'on en a, par exemple, pour manipuler le XML. Donc, dans un premier temps, je vous propose de renommer, éventuellement, la page principale en XML, on va la garder de côté et en faire une autre, et donc, de créer une nouvelle page, que nous allons appeler Json, tout simplement. Donc, allons-y, nouvelle page vierge, ce sera très bien pour le test, on va l'enregistrer sous le nom de Json, et on va faire quelque chose qui ressemblera beaucoup à ce qu'on a fait pour le XML, comme vous allez le voir, dans un premier temps, on va donc mettre un champ de saisie multiligne, qui contiendra le contenu du fichier Json, on va l'appeler par exemple, Json, tout simplement, cela devrait être suffisant, on va le mettre assez grand pour qu'on puisse voir le texte, ensuite, le but étant de faire la même démo que celle qu'on a fait dans XML, je vais créer, donc, un champ combo, voilà, qui sera rempli par programmation, je ne précise rien dans son contenu, on va l'appeler « COMBO_Titre », puisque là, l'idée est la même, on va afficher les titres, des livres du fichier Json, cette fois. Et dessous, un champ multiligne, toujours sur le même principe, pour contenir les titres sur un format différent. Donc, c'est « Titres ». Bon, après, vous pouvez vous amuser à retailler et à formater les titres, les placer au bon endroit, ce n'est pas très important ici. Je crée un bouton, que je vais appeler, par exemple, « Lire Json », ou « extraire titre », vous mettez le nom que vous voulez je peux effacer ce qu'il y avait dessous, et donc, on va s'occuper du code, maintenant, de ce bouton, évidemment. Alors, comme je vous le disais, on ne dispose pas de beaucoup de fonctions pour manipuler Json, principalement, on va pouvoir utiliser une fonction qui s'appelle « Json vers variante » et, la fonction inverse, dans notre cas selon ce qu'on veut faire. Là, l'idée, ça va être de convertir le contenu du champ texte, qui est ici, dans lequel il y aura le fichier Json, dans un format interne « W langage ». En vérité, cela va le convertir, tout bêtement, en variante. La variante étant une variable de type indéfinie. Pour faire ça, et là, la syntaxe est encore simplifiée, depuis la dernière version, on peut utiliser la déclaration « soit », qui n'existait pas dans les anciennes versions, mais qu'on peut utiliser ici, la déclaration « soit » est simplement un moyen de déclarer une variable sans préciser le type, le type étant défini automatiquement, à partir du moment où on assigne la variable avec une donnée. On appelle cela l'inférence de type. Donc, voilà comment ça s'utilise, on écrit « soit », on donne le nom à la variable, on va l'appeler, par exemple, Json, cela devrait passer. « =JSONVersVariant », là, on lui donne les données elles-mêmes, c'est-à-dire, le contenu du champ Json, qu'on collera au moment de l'exécution. Donc, cela va transformer le contenu du champ texte, en variante Json qu'on va pouvoir manipuler avec les fonctions suivantes. À partir de là, on va utiliser une boucle pour parcourir le fichier. Si vous vous souvenez à quoi il ressemble, je vais vous montrer tout de suite, au cas où vous ne vous en souveniez pas, voici le fichier Json que l'on va manipuler, qui est simplement la transformation en Json du fichier XML qu'on a vu au départ, voilà de quoi il est constitué, quand on regarde bien sa structure, on a d'abord une première liste, qui est délimitée, on va dire, par ces accolades-là, une liste d'éléments, dont le premier s'appelle Booklist, il y en a qu'un. On a qu'un élément Booklist, mais vous pouvez imaginer qu'il y ait plusieurs Booklists. N'empêche qu'il y a quand même, ici, une première liste. Dans Booklist, on a une sous-liste, qui sont les Book, les livres, cette fois. Et après, dans chaque livre, on a les données. Donc, il va falloir faire deux parcours. Le premier parcours pour parcourir les Booklist, au cas où il y en ait plusieurs, évidemment, à partir du principe qu'il y en a qu'une, mais bon, on va faire les choses proprement, et, dans cette Booklist, on va parcourir les bouquins, les livres. Donc, on y va tout de suite, on va commencer par un « POUR TOUT », puisque ce sont des listes, c'est sensé être des listes de livres, je vais appeler cela « Liste_livre », c'est un nom qu'on invente sur le moment, c'est un petit peu une déclaration de variable, à ce niveau-là, surtout de tableau, cela ressemble plus à un tableau, « DE », « json », ça, c'est la variable que j'ai déclarée au départ, ici, « ..Membre ». Donc, c'est une propriété prédéfinie dans les variables de type variante, « membre » permet de manipuler les membres de cette variante. En général, ce sont des listes, des tableaux, etc., donc on manipule le premier membre, donc on va récupérer, dans cette boucle, finalement, les listes de listes, si je peux dire. C'est-à-dire, le premier niveau, ici, qui correspond à Booklist. Sachant que nous, ce qui nous intéresse, ce sont les livres qui sont à l'intérieur, on va refaire une deuxième boucle, à l'intérieur, Donc, à l'intérieur, on va écrire « POUR TOUT », cette fois, ce sont des livres, qu'on va parcourir, donc je déclare, entre guillemets, une variable appelée « Livre », je dis « entre guillemets », car, ces variables-là, on ne les déclare pas, en vérité, elles sont inférées, sous-entendues, donc, pour tout livre qui va parcourir la liste dans laquelle on se trouve et, plus exactement, les membres de cette liste, voilà, c'est la deuxième boucle. Donc, première boucle parcourt les listes de livres et la deuxième boucle parcourt chaque liste pour en extraire les livres. Donc, arrivés à ce niveau-là, on est, si je reviens sur le fichier, dans la liste, ici. Et, on était en train de parcourir les livres. Donc, maintenant, je vais écrire « ListeAjoute », je vais remplir ma combo et mon fichier Texte, « ListeAjoute », et, ce que je veux récupérer, en l'occurrence, c'est le titre du livre, donc, vu que je suis en train de parcourir les livres, je peux faire référence au livre sur lequel je suis, « . » et là, je vais récupérer le titre. Le problème, comme vous le voyez, c'est qu'il ne me propose rien. Il ne me propose rien, parce qu'il ne sais pas quoi me proposer. C'est là qu'on voit le manque d'intégration, pour l'instant, puisque c'est prévu, a priori, pour la prochaine version, de Json dans WinDev, où on a pas la même possibilité qu'on avait en XML, où on pouvait intégrer le fichier pour qu'il le reconnaisse, etc., qu'il soit capable de vous proposer automatiquement les différents éléments. Donc, moi, je sais, de toutes façons, que c'est booktitle, qui m'intéresse, je vais même le copier-coller, ce qui me facilitera les choses, pour éviter de faire des bêtises. Voilà, vous pouvez le taper, évidemment, donc, je récupère le BookTitle, que j'ajoute à la liste. Voyez qu'il ne me dit rien, il ne me dit pas que cela n'existe pas, il ne sait pas ce qu'il y a dans cette liste, il ne le saura qu'à l'exécution, donc il le prend tel quel. Et, je fais la même chose, évidemment, dans la fameuse zone de saisie, « SAI_Titres », « += », comme on a fait pour le fichier XML, « Livre. », la même chose, « booktitle ». N'oublions pas d'ajouter le retour chariot, pour qu'il en mette un par ligne. Cela devrait donner le même résultat que ce qu'on avait eu dans le traitement du fichier XML, la syntaxe est différente, elle parait même plus simple, en fin de compte, car il y a moins de lignes, il n'y a pas la déclaration du fichier, etc., on a pas toutes les autres lignes intermédiaires. Par contre, c'est moins guidé, voilà, vous pouvez faire une erreur, ici, en tapant le nom, évidemment, cela ne marchera pas. On va quand même tester tout cela, donc, je vais coller le contenu du fichier Json, ici, je clique sur le bouton, et voilà le résultat, exactement le même que pour le fichier XML. Alors, ce que je viens de vous montrer, c'est une des méthodes permettant de manipuler les fichiers Json. En fait, il y en a une autre, basée sur les structures. Là, cela consistera à créer une structure représentant la structure, justement, du fichier Json. Et, si vous êtes en version 21, en plus, vous allez voir que nous disposons d'un outil pour le faire automatiquement.

WebDev 21 : Les web services

Créez et utilisez les web services et les services REST avec WebDev. Donnez l’accès à vos données et à vos services aux applications externes qui devront les utiliser.

1h59 (21 vidéos)
Aucun commentaire n´est disponible actuellement
Logiciel :
WebDev WebDev 21
Spécial abonnés
Date de parution :13 avr. 2016

Votre formation est disponible en ligne avec option de téléchargement. Bonne nouvelle : vous ne devez pas choisir entre les deux. Dès que vous achetez une formation, vous disposez des deux options de consultation !

Le téléchargement vous permet de consulter la formation hors ligne et offre une interface plus conviviale. Si vous travaillez sur différents ordinateurs ou que vous ne voulez pas regarder la formation en une seule fois, connectez-vous sur cette page pour consulter en ligne les vidéos de la formation. Nous vous souhaitons un excellent apprentissage avec cette formation vidéo.

N'hésitez pas à nous contacter si vous avez des questions !