PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Fonction Deserialise
Fonction Deserialise
Iniciado por pierre.vassent, 10,jun. 2020 16:12 - 2 respuestas
Publicado el 10,junio 2020 - 16:12
Bonjour,

J'ai développé un WEB SERVICE qui fonctionne bien

Lorsque j'appelle ce WEB Service via la fonction RESTEnvoie cela me renvoie une chaine de caractères dont voici un exemple

{"RECEPTIONEXT": [{ "IDRECEPTION_EXTERIEURE":1, "DATE":"20200610", "IDFOURNIS":4, "NOMFOUR":"SARL DUPONT", "IDZONESTOCKAGE":15, "IDTRANSPORTEUR":431 } ,{ "IDRECEPTION_EXTERIEURE":3, "DATE":"20200610", "IDFOURNIS":23, "NOMFOUR":"SCEA RENARD PERE ET FILS", "IDZONESTOCKAGE":15, "IDTRANSPORTEUR":14 } ]}


C'est ensuite que j'ai un problème en voulant récupérer les informations de cette chaine de caractères par la fonction deserialise. Je ne sais pas comment lire le résultat de Deserialise.

Quelq'un peut-il m'aider ?
Merci d 'avance
Pierre


h est un httpRequête
h..Méthode=httpGet
// h..URL = "http://localhost/V1/Clients/" + nNumClient
xdate est une Date=DateSys()
h..URL = "http://192.9.100.219/ReceptionExterieure/Liste/123/"+xdate+"/"+15
//
// http://192.9.100.219/Fournisseur…
//
Xchaine est une chaîne ANSI
//
r est un restRéponse = RESTEnvoie(h)
SI r..CodeEtat = 200
//Info(r..Contenu)
Xchaine=r..Contenu
Info(Xchaine)
VersPressePapier(Xchaine)
//
// Désérialisation vers l'élément
// Désérialise(Xchainecible, Xchaine, psdJSON)
//
STRECEPTIONEXT est une Structure
IDRECEPTION_EXTERIEURE est un numérique
DATE est une chaîne
IDFOURNIS est un numérique
NOMFOUR est une chaîne
IDZONESTOCKAGE est un numérique
IDTRANSPORTEUR est un numérique
FIN

STJSON est une Structure
RECEPTIONEXT est un tableau de STRECEPTIONEXT
FIN

MesReceptions est un STJSON

// Désérialisation vers l'élément
Désérialise(MesReceptions, Xchaine, psdJSON)
//
// ??? comment récupérer les enregistrements de la chaine JSON ???


//
SINON
Info("Aucune réception", r..Contenu)
FIN
Miembro registrado
953 mensajes
Publicado el 10,junio 2020 - 17:35
Bonjour Pierre,

vous voulez vraiment utiliser des structures ?
Car vous pouvez directement utiliser des variables Windows de type JSON.

_mon_json est un JSON
_mon_json=ChaîneVersJSON(XChaine)


Pour ensuite obtenir l'assistant de saisie de code sous Windev avec votre JSON, faites vous un fichier JSON avec l'exemple que vous avez indiqué plus haut, donnez lui un nom assez parlant, par exemple "resultat_[nom de la nom fonction de votre WS]. JSON"

Importez le dans Windev , dans l'explorateur de Projet , dans la partie Descriptions externes , clic droit 'Importer un JSON'

Puis dans votre code vous pourrez faire ceci :
_mon_json est un JSON<Description "nom_description">
_mon_json=ChaîneVersJSON(XChaine)


bon dèv
Miembro registrado
953 mensajes
Publicado el 10,junio 2020 - 17:37
ah , l'éditeur intégré du forum ne gère pas les descriptions,

dans le second code j'ai écrit :

_mon_json est un JSON<description='nom_fichier_json'>
_mon_json=chaineversJson(XChaine)