DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions spécifiques au WEB / Fonctions diverses WEBDEV
  • 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
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Présentation
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.
JSON et WEBDEV
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écuteAppelle une URL serveur du même domaine qui retourne des données au format JSON (JavaScript Object Notation).
JSONExécuteExterneAppelle 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 :
  1. Déclaration d'un objet dynamique. Cet objet dynamique contiendra le résultat au format JSON.
    MesContacts est un objet dynamique
  2. Appel de la fonction JSONExécute :
    MesContacts = JSONExécute(RépertoireWeb()+"FR/PAGE_Objet.awp?id=12")
  3. 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 :
      MesContacts:id
    • 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.
Version minimum requise
  • Version 14
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale