PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → Comment stocker un variant issue d'un JSONVersVariant dans une variable ?
Comment stocker un variant issue d'un JSONVersVariant dans une variable ?
Débuté par Freddykong, 11 oct. 2017 12:31 - 3 réponses
Membre enregistré
60 messages
Popularité : +4 (4 votes)
Posté le 11 octobre 2017 - 12:31
J'ai cette chaine que je reçois via une websocket en code navigateur :
{
"Commande":"SENDING_ALL_USER",
"UserDescriptionArray":
[
{
"Nom":"TEST1T",
"Prenom":"TEST1"
},
{
"Nom":"TEST2",
"Prenom":"TEST"
},
{
"Nom":"test",
"Prenom":"test"
}
],
"NbUtilisateurs":3
}
Tout le code dont je vais parler est du code Navigateur.
Tout se passe dans une fonction "SurWebsocketEvenement" qui récupère les message reçus depuis une Websocket.
La fonction JSONVersVariant me permet de récupérer un variant issue de ce fichier.
Je peux utiliser la fonction Info() sur les éléments de ce Variant sans problème.
Je peux écrire le contenue de ce variant dans une Zone de Texte Enrichie.

En revanche je ne peux pas stocker son contenue dans une chaine, ou en tout cas l'affichage ne me permet pas d'affirmer que le stockage a été effectué correctement.

Exemple:
lolito est une chaine = MonVariant.UserDescriptionArray.Nom
Info(lolito)
Le Info n'affiche rien ou "undefined"

Je ne peux pas non plus stocker ce contenu dans une Zone de Texte Enrichie au sein d'une zone Répété , et non plus dans une Table Navigateur. Ces Conteneurs restent tout simplement vides.

J'aimerai savoir pourquoi on ne peut pas stocker ces valeurs issues de ce variant en particulier ? ..
Membre enregistré
945 messages
Popularité : +53 (63 votes)
Posté le 11 octobre 2017 - 12:51
Bonjour,

ta rubrique UserDescriptionArray est un tableau donc pour le recuperer il faut faire

lolito est une chaîne = MonVariant.UserDescriptionArray[1].Nom
Info(lolito)


et si tu veux afficher tous les nom tu peux faire

pour i = 1 _A_ MonVariant.UserDescriptionArray..occurence
Trace(MonVariant.UserDescriptionArray[i].Nom)
FIN


jordan
Membre enregistré
60 messages
Popularité : +4 (4 votes)
Posté le 11 octobre 2017 - 14:14
D'accord avec toi pour le premeir echantillon de code, c'est ce que j'avais fais dans mon code au final, et ca ne fonctionne pas:

tempchaine est une chaîne = VariantMessages.UserDescriptionArray[1].Nom
Info(tempchaine)

me retourne "undefined"

J'avais déjà également tester ton deuxième echantillon de code, qui fonctionne bien masi ce n'est malheureusement pas ce que je cherche à faire...
Message modifié, 11 octobre 2017 - 14:15
Membre enregistré
60 messages
Popularité : +4 (4 votes)
Posté le 11 octobre 2017 - 14:42
Ok j'ai d'autres tests plus simples , sur un variant contenant uniquement deux variables et cela fonctionne, le problème semble venir du tableau au sein du variant.