|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par ovi, 01 nov. 2021 18:41 - 7 réponses |
| |
| | | |
|
| |
Membre enregistré 48 messages |
|
| Posté le 01 novembre 2021 - 18:41 |
Bonjour à tous,
J'aimerais enregistrer des données json converti en variant. Voici les données JSON

Et voici mon code
vMonvariant est un Variant
vMonvariant = JSONVersVariant(oRéponse..Contenu)
STlist est une structure Id est un entier IsRegistered est un booléen Number est une chaîne FirstName est une chaîne LastName est une chaîne Email est une chaîne Password est une chaîne MobileNumber est une chaîne OutboundCallerId est une chaîne Phones est un entier MacAddress est une chaîne Membership est une chaîne CurrentProfile est une chaîne DND est un entier
FIN
stMonob est un STlist
POUR TOUT stListelement de vMonvariant.Occurrence stMonob.Id = vMonvariant.list[stListelement].Id stMonob.FirstName = vMonvariant.list[stListelement].FirstName
FIN
Je ne vois pas ce que je fais faux. Qqun peut-il me donner un coup de main ?
D'avance merci et bonne soirée  |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 334 messages |
|
| Posté le 01 novembre 2021 - 19:24 |
Bonjour, As tu regardé du côté de la désérialisation ?
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 48 messages |
|
| Posté le 01 novembre 2021 - 22:22 |
Hello,
Non pas vraiment, quelle est la différence ou avantage ?
Merci beaucoup |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 334 messages |
|
| Posté le 01 novembre 2021 - 23:42 |
La sérialisation consiste à convertir des données stockées en mémoire, dans ton cas un tableau de structure en un ensemble d'octets pour les sauvegarder dans un fichier ou les transmettre via le réseau. Cette conversion se fait en XML, en JSON ou en binaire. La désérialisation est l'opération inverse. Prenons le code suivant :
STToto est une structure m_saNom est chaîne m_tabInt est tableau de 3 entiers FIN tabListeToto est tableau de STToto stMonToto est STToto bufSerial est Buffer
stMonToto.m_saNom="Titi" stMonToto.m_tabInt[1]=3 stMonToto.m_tabInt[2]=4 stMonToto.m_tabInt[3]=5 TableauAjoute(tabListeToto,stMonToto) stMonToto.m_saNom = "Tata" stMonToto.m_tabInt[1] = 4 stMonToto.m_tabInt[2] = 5 stMonToto.m_tabInt[3] = 6 TableauAjoute(tabListeToto,stMonToto) Pour envoyer le contenu du contenu de la mémoire pointant sur tabListeToto, on est obligé de le convertir en une série d'octets via :
Sérialise(tabListeToto,bufSerial,psdJSON) (ou une fonction équivalente en fonction du langage) Si on regarde le buffer qui va être transmis, on obtient cela :
[ { "m_saNom":"Titi", "m_tabInt":[ 3, 4, 5 ] }, { "m_saNom":"Tata", "m_tabInt":[ 4, 5, 6 ] } ]
Pouf, c'est parti........
A l'autre bout on reçoit le buffer
On va utiliser un tableau de structure ayant les mêmes caractéristique (ie même nom et même type de membre) et Napuka désérialiser
Désérialise(tabListeToto,oRéponse..Contenu,psdJSON) En mémoire (dans tabListeToto) on a bien ce qui a été envoyé
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 4 334 messages |
|
| Posté le 02 novembre 2021 - 00:02 |
Par ailleurs, pour que ton code fonctionne, il faut faire une truc du style :
POUR TOUT stListelement de vMonvariant.Occurrence stMonob.Id =stListelement.Id stMonob.FirstName = stListelement.FirstName ... FIN
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 48 messages |
|
| Posté le 02 novembre 2021 - 07:51 |
Hello,
Merci Voroltinquo je vais tester ça dès mon retour au bureau. |
| |
| |
| | | |
|
| | |
| |
| Posté le 02 novembre 2021 - 10:55 |
Le 01/11/2021, ovi a supposé :
Bonjour à tous, J'aimerais enregistrer des données json converti en variant. Voici les données JSON

Et voici mon code vMonvariant est un Variant
vMonvariant = JSONVersVariant(oRéponse..Contenu)
STlist est une Structure Id est un entier IsRegistered est un booléen Number est une chaîne FirstName est une chaîne LastName est une chaîne Email est une chaîne Password est une chaîne MobileNumber est une chaîne OutboundCallerId est une chaîne Phones est un entier MacAddress est une chaîne Membership est une chaîne CurrentProfile est une chaîne DND est un entier
FIN
//tabList est un tableau de STlist stMonob est un STlist
POUR TOUT stListelement DE vMonvariant.Occurrence stMonob.Id = vMonvariant.list[stListelement].Id stMonob.FirstName = vMonvariant.list[stListelement].FirstName
FIN Je ne vois pas ce que je fais faux. Qqun peut-il me donner un coup de main ? D'avance merci et bonne soirée 
bonjour,
j'essayerais ceci :
POUR TOUT stListelement DE vMonvariant.list.Occurrence .....
-- Cordialement JeAn-PhI |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 48 messages |
|
| Posté le 02 novembre 2021 - 12:13 |
Hello,
J'ai réussi en faisant ce code 
STlist est une Structure Id est un entier IsRegistered est un booléen Number est une chaîne FirstName est une chaîne LastName est une chaîne Email est une chaîne Password est une chaîne MobileNumber est une chaîne OutboundCallerId est une chaîne Phones est un entier MacAddress est une chaîne Membership est une chaîne CurrentProfile est une chaîne DND est un entier
FIN
stMonob est un STlist
POUR TOUT stListelement DE vMonvariant.list stMonob.Id = stListelement.Id stMonob.FirstName = stListelement.FirstName stMonob.LastName = stListelement.LastName stMonob.OutboundCallerId = stListelement.OutboundCallerId
FIN
Merci à tous  |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|