


|
|
Erreur JSONVersVariant sur WinDev Mobile (V28)
|
| Message envoyé
le
16-07-2025
par
hashmi_net 135168
(Maroc)
|
Bonjour à tous,
J’espère que vous allez bien. Je me permets de solliciter un petit coup de main si possible.
Je travaille sur une application WinDev Mobile (version 28), et je rencontre un souci avec l’utilisation de la fonction JSONVersVariant dans le traitement d’un champ de saisie.
Voici le contexte : j’exécute une requête HTTP à chaque modification du champ, pour afficher dynamiquement des résultats issus d’un backend (au format JSON). Ce code fonctionne parfaitement dans l’environnement WinDev 28 (PC), mais sur mobile, j’obtiens systématiquement une erreur indiquant que JSONVersVariant est inaccessible.
Auriez-vous une idée ou une piste pour contourner ou résoudre ce problème sur WinDev Mobile ? Je vous remercie sincèrement par avance pour votre aide !
Voici le code concerné :
windev
Copier
Modifier
sTexte est une chaîne = SAI_recherche
SI Taille(sTexte) >= 4 ALORS
sURL est une chaîne = "http://backendurl/search?q=" + URLEncode(sTexte)
SI HTTPRequête(sURL) ALORS
sRéponse est une chaîne = HTTPDonneRésultat()
// Conversion de la réponse JSON en Variant
vData est un Variant = JSONVersVariant(sRéponse)
i est un entier
ZoneRépétéeSupprimeTout(ZR_resultats) // Vider la zone répétée
POUR i = 1 À Dimension(vData)
sNom est une chaîne = vData["name"]
sID est une chaîne = vData["id"]
ZR_resultats.AjouteLigne()
ZR_resultats.STC_Nom = sNom
ZR_resultats.LIB_SansNom1 = sNom
ZR_resultats.STC_ID = sID
ZR_resultats.LIB_SansNom2 = sID
FIN
FIN
FIN
Voici un exemple de résultat JSON retourné par le backend lorsqu’on recherche "doli" :
[
{"id":"5485","name":"DOLIPRANE 100 mg pdre p sol buv en sachet-dose"},
{"id":"5497","name":"DOLIPRANE 100 mg suppos sécable"},
{"id":"19649","name":"DOLIPRANE 1000 mg cp"},
{"id":"5478","name":"DOLIPRANE 1000 mg cp efferv séc"},
{"id":"106232","name":"DOLIPRANE 1000 mg gél"},
{"id":"20804","name":"DOLIPRANE 1000 mg pdre p sol buv en sachet-dose"},
{"id":"5493","name":"DOLIPRANE 1000 mg suppos adultes"},
{"id":"5486","name":"DOLIPRANE 150 mg pdre p sol buv en sachet-dose"},
{"id":"5494","name":"DOLIPRANE 150 mg suppos"},
{"id":"5489","name":"DOLIPRANE 2,4 % susp buv"},
{"id":"5487","name":"DOLIPRANE 200 mg pdre p sol buv en sachet-dose"},
{"id":"5495","name":"DOLIPRANE 200 mg suppos"},
{"id":"5488","name":"DOLIPRANE 300 mg pdre p sol buv en sachet-dose"},
{"id":"5496","name":"DOLIPRANE 300 mg suppos"},
{"id":"5476","name":"DOLIPRANE 500 mg cp"},
{"id":"5477","name":"DOLIPRANE 500 mg cp efferv"},
{"id":"5480","name":"DOLIPRANE 500 mg gél"},
{"id":"5484","name":"DOLIPRANE 500 mg pdre p sol buv en sachet-dose"},
{"id":"106245","name":"DOLIPRANECAPS 1000 mg gél"},
{"id":"229601","name":"DOLIPRANELIQUIZ 1000 mg susp buv en sachet édulc au sorbitol,sucralose néohespéridine DC"},
{"id":"162747","name":"DOLIPRANELIQUIZ 200 mg susp buv en sachet"},
{"id":"162473","name":"DOLIPRANELIQUIZ 300 mg susp buv en sachet"},
{"id":"228471","name":"DOLIPRANELIQUIZ 500 mg susp buv sach édulc au sorbitol,sucralose néohespéridine DC"},
{"id":"161767","name":"DOLIPRANEORODOZ 500 mg cp orodispers"},
{"id":"109285","name":"DOLIPRANETABS 1000 mg cp pellic"}
]
Je vous remercie d’avance pour toute suggestion ou retour d’expérience sur ce sujet !
Bonne journée à tous, et merci encore pour votre temps !
Encore merci pour votre temps et votre expertise 
Bonne journée à tous !
| |
| Message envoyé
le
16-07-2025
par
PRINCE 135169
(Maroc)
|
Bonjour hashmi_net
Je n'ai pas WM28 installé mais la première remarque que j'ai sur ton code
En WM les chaines sont en unicode et pour travailler avec du JSON
j'utilise des chaines en ANSI
Modifie la chaine suivante en ANSI:
sRéponse est une chaîne ANSI = ......
| |
| Message envoyé
le
16-07-2025
par
Jackson 135170
(Bosnie)
|
J'utilise rarement des variables « variant », mais toujours du JSON et des structures/classes. C'est bien plus simple que d'utiliser la variable « variant ».
Je n'ai jamais ce problème avec Windev Mobile.
Je suis également d'accord avec PRINCE. Il utilise ANSI.
| |
| Message envoyé
le
16-07-2025
par
hashmi_net 135171
(Maroc)
|
@Prince
@jackson
Merci pour l'update rapide
je teste cela ce soir et reviens vers vous
| |
| Message envoyé
le
24-07-2025
par
bugdate666 135194
(BE)
|
Essaye plus tôt avec la demande Contenu
// Conversion de la réponse JSON en Variant
vData est un Variant = JSONVersVariant(sRéponse..Contenu)
Et normalement cela te donnera toutes les informations dans vData
| |
| Message envoyé
le
25-07-2025
par
lifou218 135197
(Belgique)
|
Pour une appli Mobile -> encodeURLDepuisAnsi()
// Encodage d'une URL avec un paramètre de type URL
Info(URLEncode("https://www.google.fr/?", encodeURLDepuisAnsi) + ...
URLEncode(URLEncode("https://www.google.fr/?é", encodeURLDepuisAnsi), encodeURLParamètre))
| |
| Message envoyé
le
05-08-2025
par
hashmi_net 135209
(Maroc)
|
@tout le monde
Merci pour votre aide et je suis navré pour le retard tardif
j'ai converti mon contenu effectivement en variant et paf ca a marché
entre temps j'ai recodé toute l'applicaiton en flutter l'appli sur WinDev semblait être trop lente pour un usage grand public (1 million d'utilisateur a conquérir)
| |
|