IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windev Mobile Discussion :

Création d'un tableau à partir des données JSON (Windev mobile 22) [WM22]


Sujet :

Windev Mobile

  1. #1
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut Création d'un tableau à partir des données JSON (Windev mobile 22)
    Bonjour à toutes et à tous !
    Je ne parviens pas à créer des lignes d'une table à partir d'une requête dont le résultat est sous la forme JSON. Voici le code utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sRep est une chaîne ANSI
    sJson2 est une chaîne ANSI
     
    SI HTTPRequête("http://xxxxxxxxxxxxxx.php") ALORS
    		sJson2 = HTMLVersTexte(HTTPDonneRésultat(httpRésultat))
    		Info(sJson2)
    SINON
    	Erreur("Impossible de télécharger les données")
    FIN
    Avec ce code une boite s'affiche avec les résultats, mais comment faire ensuite pour alimenter une table dans la même fenêtre ?

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Les questions par rapport à Windev Mobile se font ici normalement.

    2 fonctions à faire appel dans votre application : JSONVersVariant et TableAjouteLigne

  3. #3
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Ok je tente d'implémenter les deux fonctions mais j'obtiens l' erreur "Le variant n'est pas un objet"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    sRep est une chaîne ANSI
    sJson2 est une chaîne ANSI
    DonneesJSON est un Variant
    SI HTTPRequête("http://xxxxxxxxxxxxxxxxxx.php") ALORS
    		sJson2 = HTMLVersTexte(HTTPDonneRésultat(httpRésultat))
    		DonneesJSON=JSONVersVariant(sJson2)
    		TableAjouteLigne(Table1,DonneesJSON.Ref_stage,DonneesJSON.Adresse_organisateur)
     
    SINON
    	Erreur("Impossible de télécharger les données")
    FIN
    Il me manque certainement quelquechose

  4. #4
    Invité
    Invité(e)
    Par défaut
    Que contient sJson2 après avoir fait HTMLVersTexte(HTTPDonneRésultat(httpRésultat)) ?
    Si sJson2 ne contient pas du json, il faut s'orienter vers une autre piste

  5. #5
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par romulus001 Voir le message
    Que contient sJson2 après avoir fait HTMLVersTexte(HTTPDonneRésultat(httpRésultat)) ?
    Si sJson2 ne contient pas du json, il faut s'orienter vers une autre piste
    L'affichage de Json2 me donne : [{"Ref":"544","Adresse":"3 rue des Coteaux "},{"Ref":"543","Adresse":"5 rue de Laplace"}]
    J'ai passé la page php sur jsonlint.com et le retour est valide.

  6. #6
    Invité
    Invité(e)
    Par défaut
    La valeur retournée est un tableau, à cause des crochets, il faudra faire une boucle pour parcourir chacun des éléments

  7. #7
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par romulus001 Voir le message
    La valeur retournée est un tableau, à cause des crochets, il faudra faire une boucle pour parcourir chacun des éléments
    Ok je pensais boucler sur l'élément pour obtenir ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    sJson2 est une chaîne ANSI
    v est un Variant
     
    SI HTTPRequête("http://xxxxxxxxx.php") ALORS
     
    		sJson2 = HTMLVersTexte(HTTPDonneRésultat(httpRésultat))
    		Info(sJson2)
     
    		v=JSONVersVariant(sJson2)
    		POUR TOUT Ref_stages DE v..Membre
    		//TableAjouteLigne(Table1,Refstages,Adressestage)
    		FIN
     
     
     
     
    SINON
    	Erreur("Impossible de télécharger les données")
    FIN
    mais ca cole pas

  8. #8
    Invité
    Invité(e)
    Par défaut
    Vous y êtes presque.
    Remplacez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    POUR TOUT Ref_stages DE v..Membre
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    POUR TOUT Ref_stages DE v
    Et dans la boucle, faites appel à la variable Ref_stages

    Si cela peut vous aider, utilisez le debogguer, il sera votre précieux ami

  9. #9
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Je n'ai plus d'erreur avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sJson2 est une chaîne ANSI
    v est un Variant
    Ref_stages est un Variant
    Adresse_organisateur est un Variant
    SI HTTPRequête("http://xxxxxxxxxxxxxxx.php") ALORS
    		sJson2 = HTMLVersTexte(HTTPDonneRésultat(httpRésultat))
    		Info(sJson2)
    		v=JSONVersVariant(sJson2)
    	POUR TOUT Ref_stages DE v
    		TableAjouteLigne(Table1, Ref_stages, Adresse_organisateur)
    		FIN
    SINON
    	Erreur("Impossible de télécharger les données")
    FIN

    mais j'obtiens des zéros dans le tableau

  10. #10
    Membre du Club
    Inscrit en
    Août 2004
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 98
    Points : 55
    Points
    55
    Par défaut
    Ok c'est réglé avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    sJson2 est une chaîne ANSI
    v est un Variant
    Ref_stages est un Variant
    Adresse_organisateur est un Variant
    SI HTTPRequête("http://xxxxxxxxxxxxxxxxxxxxxxx.php") ALORS
    		sJson2 = HTMLVersTexte(HTTPDonneRésultat(httpRésultat))
    		Info(sJson2)
    		v=JSONVersVariant(sJson2)
    	POUR TOUT Ref_stages DE v
    		TableAjouteLigne(Table1, Ref_stages.Ref_stages, Ref_stages.Adresse_organisateur)
    		FIN
    SINON
    	Erreur("Impossible de télécharger les données")
    FIN
    Un grand merci romulus001

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par kernel57 Voir le message
    L'affichage de Json2 me donne : [{"Ref":"544","Adresse":"3 rue des Coteaux "},{"Ref":"543","Adresse":"5 rue de Laplace"}]
    Ce que je ne comprend pas, c'est que normalement, vous auriez dû écrire ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    POUR TOUT Ref_stages DE v
    	TableAjouteLigne(Table1, Ref_stages.Ref, Ref_stages.Adresse)
    FIN
    Est-ce que la structure du JSON a changé entre temps?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/08/2015, 15h37
  2. Réponses: 10
    Dernier message: 06/04/2015, 22h30
  3. Création d'un programme à partir des données d'un classeur
    Par guigui71 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/04/2010, 09h26
  4. [MySQL] Construction d'un tableau à partir des données de la base
    Par the--first dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 03/08/2008, 20h50
  5. [TP] Remplir un tableau à partir des données d'un autre tableau
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 27/05/2007, 17h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo