PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Convertion JSON en Variant et perte des caractère spéciaux
Convertion JSON en Variant et perte des caractère spéciaux
Débuté par Many, 19 mar. 2025 14:05 - 3 réponses
Membre enregistré
4 messages
Posté le 19 mars 2025 - 14:05
Bonjour,

Quand je transforme un JSON recu par mon API Backend et que je transforme ce JSON en Variant je pert mes caractères spéciaux comme "é" qui devient "?" je ne comprend pas pourquoi si quelqu'un a la solution je suis prenneur.







Membre enregistré
183 messages
Posté le 19 mars 2025 - 15:35
Bonjour

Je vois votre problème, vous souhaitez savoir pourquoi il y a des caractères spéciaux dans le résultat JSON, je sais pourquoi il y a ses caractères

1. Soit vous ne devrez pas écrire des accents dans le nom des variables d'abord
2. Soit vous devrez utiliser une variable de tableau de structure de même structure de résultat du variable "response", çà c'est encore une autre syntaxe

Pour ce cas de votre programme, il vous faut cette code
bfBuffer is Buffer
bfBuffer = ChaîneVersJSON(sResponse)
Info(bfBuffer)
vVariant is Variant = JSONVersVariant(bfBuffer)

NB : si vous utilisez la syntaxe info(), il affiche des caractères spéciaux illisibles
NB : une idée aussi qu'il faut utiliser une variable buffer pour récupérer les informations
NB : pour les cas des caractères spéciaux, lorsque vous récupérez les informations dans le variant, les accents reviennent dans les mêmes endroit

Cordialement
Mr.RATSIMANDRESY
Niry Aina Eddy
Membre enregistré
4 211 messages
Posté le 19 mars 2025 - 21:17
Bonjour,
Il s'agit surement d'un problème ANSI/UNICODE
A la volée :
bufBuffer est buffer
suRéponse est chaîne UNICODE
.....
bufBuffer=ChaîneVersJSON(suRéponse)
...

--
Il y a peut être plus simple, mais, ça tourne
Quand tout a échoué, utilise l'option RTFM
Message modifié, 19 mars 2025 - 21:37
Membre enregistré
4 messages
Posté le 20 mars 2025 - 09:42
j'ai finis par trouver une solution hier j'ai effectuer ca comme ca et je lit directement le JSON au final et je n'est donc plus de soucit de caractères spéciaux

// Déclaration de la requête HTTP
requete est une restRequête
requete.URL = "http://192.168.168.157:6000/api/commande/get-noDelivred"
requete.Méthode = httpGet

TaskReponse est une restRéponse = RESTEnvoie(requete)

Trace(TaskReponse..CodeEtat)
TaskReturn est un JSON = TaskReponse..Contenu
Trace(TaskReturn[2].Designation)
Info(TaskReturn[2].Designation)