|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par cbernard, 30 juil. 2024 10:37 - 3 réponses |
| |
| | | |
|
| |
Membre enregistré 47 messages |
|
| Posté le 30 juillet 2024 - 10:37 |
Bonjour à tous,
en m'inspirant de la documentations j'ai entrepris de créer une fonction qui permet de charger n'importe quel JSON dans un variant.
Procedure GetJson(table est une chaîne, Id est une chaîne, ListeChamps est une chaîne)
Trace("###############################################################################################################")
maRequeteREST est un restRequête maRequeteREST.Méthode = httpGet SI Taille(SAI_RECHERCHER) = 0 ALORS maRequeteREST.URL = "https:xx/api/"+table+"/"+ Id +"/"+ gsApikey_private / SINON maRequeteREST.URL = "https:/xx/api/"+table+"/" + SAI_RECHERCHER + "/" + gsApikey_private FIN
maReponseREST est une restRéponse = RESTEnvoie(maRequeteREST)
SI maReponseREST..CodeEtat = 200 ALORS MonJson est un JSON = maReponseREST.Contenu vJSON est un Variant = JSONVersVariant(MonJson) QUAND EXCEPTIONEXCEPTION DANS
ParcoursMembresVariant(vJSON) PROCEDURE INTERNE ParcoursMembresVariant(_ObjetOuTableau) ListeChamps2 est une chaîne = ListeChamps SELON _ObjetOuTableau..Type CAS wlVariantObjet : POUR TOUT _Membre de _ObjetOuTableau..Membre SI _Membre..Membre..Occurrence = 0 ALORS SELON _Membre..Type CAS wlVariantTableau : Trace("**********************") ParcoursMembresVariant(_Membre) AUTRES CAS :
SI (Contient(ListeChamps2,_Membre..Nom) = 1 ) ALORS Trace(_Membre..Valeur) FIN FIN SINON Trace(Répète("--", ChaîneOccurrence(dbgInfo(dbgPile), RC)) +... "Le membre " + _Membre..Nom + " a " +... _Membre..Membre..Occurrence + " autres membres...") Trace("bbbbbbbbbbbbbbbbbbbb") ParcoursMembresVariant(_Membre) FIN FIN CAS wlVariantTableau :
POUR TOUT ÉLÉMENT UnElement, Compteur de _ObjetOuTableau Trace(Compteur +"/"+_ObjetOuTableau..Occurrence) ParcoursMembresVariant(UnElement) Trace("**********************") FIN AUTRES CAS : Trace("A gérer ("+_ObjetOuTableau..Type+") !?"+_ObjetOuTableau) FIN FIN
FAIRE Erreur("Erreur de chargement des données Json") FIN SINON Info("Erreur", "Problème de connection")
FIN
La fonction est appelée sur le clic d'un bouton.
ListeChamps est une chaîne = "Lien|ID" GetJson("Liens","%20",ListeChamps)
Tout fonctionne parfaitement, je n'ai pas besoin de connaitre les balises du JSON appelées le trace remonte ce que je souhaite. Les données sont remontées dans le trace ligne par ligne

Je bloque sur la possiblité de retourner les valeurs dans un tableau ou autre pour remplir une zone répétée d'une fenetre windev mobile.
Merci pour votre aide, vos pistes. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 491 messages |
|
| Posté le 30 juillet 2024 - 11:36 |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 47 messages |
|
| Posté le 30 juillet 2024 - 12:01 |
Merci Dimitri, exactement ce que je recherche.
je vais essayer d'adapter ce code à mon besoin mais j'ai compris l'idée. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 47 messages |
|
| Posté le 30 juillet 2024 - 15:29 |
Je n’ai malheureusement pas le niveau pour adapter le code proposé .
Je suis passé par un tableau temporaire .
À la place d’un trace , je stocke dans champ table temporaire les données parsées puis avec une fonction je relis les données . ça fonctionne bien mais pas très propre je trouve .
Je partagerai mes avancées si j’y arrive dans un second temps .
Merci pour le lien en tout cas . |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|