PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV Mobile 2024
→
Copie de JSON vers classe ou structure
Copie de JSON vers classe ou structure
Started by Pierre, Oct., 21 2018 6:21 PM - 2 replies
Connect yourself…
Pierre
#1
Registered member
152 messages
Popularité : +1 (1 vote)
Posted on October, 21 2018 - 6:21 PM
Bonjour,
J'ai un websservice REST qui me retourne un tableau de structure en JSON
Voici la génération
ST
UneMission
est une structure
IdMission
est un entier
Plaque
est une chaîne
Marque
est une chaîne
Modèle
est une chaîne
Nom
est une chaîne
DateSinistre
est une
Date
VéhiculeChoc
est une chaîne
Véhiculechassis
est une chaîne
C
ieIntervenant
est une chaîne
<
MAPPING
=
IntervenantCie
>
FIN
s
ListeRenvoi
est une chaîne
tab
ListeMission.SupprimeTout
(
)
SI
n
IdMission
=
0
ALORS
//On les prend toutes
HExécuteRequête
(
REQ_
MissionsLst
)
FichierVersTableau
(
tab
ListeMission
,
REQ_
MissionsLst
)
SINON
HLitRecherche
(
Mission
,
IDMission
,
n
IdMission
)
SI
HTrouve
(
Mission
)
ALORS
st
MissionEncours
=
Mission
Ajoute
(
tab
ListeMission
,
st
MissionEncours
)
FIN
FIN
Sérialise
(
tab
ListeMission
,
s
ListeRenvoi
,
psdJSON
)
RENVOYER
s
ListeRenvoi
Voici la réception sur un mobile android
MaQuestion
est un restRequête
MaRéponse
est un restRéponse
v
Contenu
est un
Variant
MaQuestion.URL
=
"http://I7-Dvp/Missions/"
MaRéponse
=
RESTEnvoie
(
MaQuestion
)
gtab
MissionsLst.SupprimeTout
(
)
SI PAS
ErreurDétectée
ALORS
v
Contenu
=
JSONVersVariant
(
MaRéponse.Contenu
)
POUR
TOUT
UneMission
de
v
Contenu
st
NewMission
est une
ST
UneMission
st
NewMission
=
UneMission
st
NewMission.Nom
=
UneMission.nom
st
NewMission.Marque
=
UneMission.marque
st
NewMission.Modele
=
UneMission.modèle
st
NewMission.Plaque
=
UneMission.plaque
//
stNewMission<=UneMission
Ajoute
(
gtab
MissionsLst
,
st
NewMission
)
Ajoute
(
gtab
MissionsFromClass
,
cl
MissonFromClass
)
//
Trace(UneMission.Nom)
FIN
FIN
Dans le simulateur, çà passe. Par contre, sur le téléphone, si je n'affecte pas membre par membre comme ci-dessus j'ai un rapport d'erreur qui dit qu'on ne peut copier dans un objet qu'un objet identique.
C'est peut-être une question de format unicode/ansi mais je n'ai pas trouvé.
Connaissez-vous un moyen pour éviter de copier membre par membre.
PS : La déclaration de structure est identique d'un projet WD23 au WM23
Merci d'avance
Pierre
Report
0
0
Philippe SB
#2
Registered member
2,574 messages
Popularité : +222 (260 votes)
Posted on October, 22 2018 - 9:57 AM
Bonjour,
Tu as essayé d'utiliser Désérialise() en lieu et place de JSONVersVariant(). Tu sérialises d'un côté, donc tu désérialises de l'autre. Le format n'est peut-être pas tout à fait le même d'une fonction à une autre.
--
Cordialement,
Philippe SAINT-BERTIN
Report
0
0
Pierre
#3
Posted on October, 24 2018 - 2:54 PM
Philippe SB a exposé le 22-10-18 :
Bonjour,
Tu as essayé d'utiliser Désérialise() en lieu et place de JSONVersVariant().
Tu sérialises d'un côté, donc tu désérialises de l'autre. Le format n'est
peut-être pas tout à fait le même d'une fonction à une autre.
Désolé pourle retard mais je viens de faire le test à l'instant.
Effectivement, ce sont les mêmes ... mais pas trop !
Avec Désérialise() tout passe en un bloc
Merci
--
Cordialement,
Pierre
Report
0
0
→ Go back to WINDEV Mobile 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text