- Présentation
- JSON et WEBDEV
- Obtenir des informations au format JSON
- Exemple d'utilisation de la fonction JSONExécute
- Exemple d'utilisation de la fonction JSONExécuteExterne
- Créer des pages renvoyant des données JSON
JSON (JavaScript Object Notation – Notation Objet issue de JavaScript) est un format léger d'échange de données. Basé sur le JavaScript, JSON est un format texte indépendant de tout autre langage. JSON se base sur deux structures : - une collection de couples nom / valeur, interprétée en WLangage par des structures.
- une liste de valeurs ordonnées, interprétée en WLangage par des tableaux.
WEBDEV permet : - d'obtenir des informations au format JSON dans un site WEBDEV.
- de créer des pages WEBDEV renvoyant des informations au format JSON. Il est par exemple possible de créer un site fournisseur de services JSON (par exemple service de suivi de colis).
Obtenir des informations au format JSON Pour obtenir des informations au format JSON, WEBDEV permet d'exécuter une page renvoyant des informations au format JSON. Deux fonctions WLangage sont disponibles : | | JSONExécute | Appelle une URL serveur du même domaine qui retourne des données au format JSON (JavaScript Object Notation). | JSONExécuteExterne | Appelle une URL serveur externe qui retourne des données au format JSON (JavaScript Object Notation). Les données sont traitées dans une procédure spécifique. |
Ces fonctions sont des fonctions navigateur. Le traitement des données reçues est réalisé par un code navigateur. Exemple d'utilisation de la fonction JSONExécute Le code suivant permet d'exécuter une page AWP pour obtenir la liste des contacts au format JSON. Les étapes sont les suivantes : - Déclaration d'un objet dynamique. Cet objet dynamique contiendra le résultat au format JSON.
MesContacts est un objet dynamique
- Appel de la fonction JSONExécute :
MesContacts = JSONExécute(RépertoireWeb()+"FR/PAGE_Objet.awp?id=12")
- Traitement des données JSON obtenues : Ce traitement est effectué en code navigateur.
Prenons un exemple simple : les données JSON sont renvoyées sous la forme :
{id: 12, liste: [ {nom: "smith", prénom: "john"}, {nom: "dupond", prénom: "marie"}, {nom: "martin", prénom: "lauré"}] }
Il est possible par exemple de :- récupérer la valeur d'un membre de l'objet dynamique. Par exemple :
- récupérer les différents éléments d'une liste de valeurs. Par exemple :
POUR i = 1 _À_ Dimension(MesContacts:liste) ListeAjoute(LISTE_Liste_des_contacts, ... MesContacts:liste[i]:nom + " " + ... MesContacts:liste[i]:prénom) FIN
Exemple d'utilisation de la fonction JSONExécuteExterne Le principe d'utilisation de la fonction JSONExécuteExterne est le même que pour la fonction JSONExécute. Dans ce cas, la page permettant de récupérer les données JSON n'est pas dans le même domaine. Les règles de sécurité Internet imposent d'utiliser une fonction de rappel pour traiter le résultat de manière asynchrone. La fonction JSONExécuteExterne permet donc d'indiquer le nom de la procédure exécutée pour traiter les données JSON. Exemple : Dans cet exemple, une page AWP est appelée et le traitement des données est réalisé dans la procédure RéponseFonction :
JSONExécuteExterne("http://MonSite/MonSite_WEB/FR/PAGE_Objet.awp?id=12", ... "JsonCallback", RéponseFonction)
Créer des pages renvoyant des données JSON WEBDEV offre la possibilité de créer un site fournisseur de services JSON. Les pages permettant d'obtenir les données JSON doivent renvoyer une chaîne de caractères d'un format spécifique. Ces pages peuvent être des pages AWP ou PHP. Cas d'une page appelée par la fonction JSONExécute : Le code suivant permet de renvoyer un identifiant et une liste de valeurs :
sObjet est une chaîne = [ {id: 12, liste: [ {nom: "smith", prénom: "john"}, {nom: "dupond", prénom: "marie"}, {nom: "martin", prénom: "lauré"}] } ] // ChaîneVersUTF8 permet de gérer les accents ChaîneAffiche(ChaîneVersUTF8(sObjet))
La fonction ChaîneAffiche permet de renvoyer les informations JSON. La fonction ChaîneVersUTF8 permet de renvoyer une chaîne au format UTF8. Cette dernière fonction est obligatoire pour obtenir un format valide.
Cas d'une page appelée par la fonction JSONExécuteExterne : En plus du code permettant de gérer les éléments JSON à renvoyer, il est nécessaire de préciser dans les données renvoyées, le nom de la procédure devant traiter des données. Le nom de cette procédure est indiqué en paramètre sur l'URL de la page. L'exemple suivant permet de gérer l'appel avec JSONExécute et JSONExécuteExterne. Pour le cas d'un appel externe, il est nécessaire de vérifier la présence d'un paramètre spécifique présent sur l'URL. Ce paramètre a été fourni à l'utilisateur du service JSON.
sObjet est une chaîne = [ {id: 12, liste: [ {nom: "smith", prénom: "john"}, {nom: "dupond", prénom: "marie"}, {nom: "martin", prénom: "lauré"}] } ] // Gestion d'un appel externe. // Vérifie la présence d'un nom de procédure sur l'URL SI PageParamètre("JsonCallback") <> "" ALORS sObjet = PageParamètre("JsonCallback") + "("+ sObjet + ");" FIN // ChaîneVersUTF8 permet de gérer les accents ChaîneAffiche(ChaîneVersUTF8(sObjet))
Pour que les utilisateurs de sites WEBDEV puissent utiliser les services JSON, il suffit donc de leur indiquer le ou les paramètres à spécifier dans l'adresse de la page à lancer. Remarque : Pour plus de détails sur les syntaxes pouvant être utilisées dans les données renvoyées au format JSON, nous vous conseillons de consulter une documentation spécifique.
|
|
|
|