FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
XMLVersJSON problema con la conversión
XMLVersJSON problema con la conversión
Débuté par Corina, 27 sep. 2022 13:27 - 3 réponses
Connectez-vous…
Corina
#1
Posté le 27 septembre 2022 - 13:27
J'utilise WINDEV v27 et j'essaie de convertir un XML obtenu à partir d'une requête vers un service Web vers un objet JSON.
xmlResponse est xmlDocument
wsResponse est wsResponse
wsResponse = RepLasPalmas.getPrescriptions(generateRequest())
xmlResponse =XMLOuvre(wsResponse.XMLSource,fromString)
reponse est JSON = XMLVersJSON(xmlResponse)
Tout fonctionne correctement à l'exception de quelques champs qui les transforment dans le mauvais sens.
Objet XML
Ce serait l'objet JSON une fois converti avec la fonction.
Les valeurs de idPrescripcion et idReceta sont celles qui ont été mal converties. Ces valeurs sont en fait des chaînes mais vous les convertissez en un entier court d'où la valeur 2147483647.
J'ai essayé d'utiliser dans la fonction XMLVersJSON une variable de type JSONXMLConvertisseur en la définissant de la manière suivante
convertisseur est JSONXMLConvertisseur
convertisseur.JSONTyping=false
la réponse est JSON = XMLVersJSON (xmlResponse, convertisseur)
Le résultat reste le même.
Est-ce que quelqu'un sait comment lui faire prendre les bonnes valeurs qui viennent dans le XML ?
Signaler
0
0
Fabrice NOGALES
#2
Membre enregistré
119 messages
Posté le 28 septembre 2022 - 08:08
Bonjour,
Visiblement XMLVersJSON() ne peut pas convertir les entiers > 32 bits (dont la valeur maximum est 2147483647)
Il faut donc convertir les champs idPrescripcion et idReceta en chaine AVANT de faire le XMLVersJSON()
J'ai été confronté au même problème que toi. Pour faire simple (et gagner du temps), je n'ai pas trouvé d'autre solution que de rajouter un espace devant certains champs AVANT de faire le XMLVersJSON()
Dans ton cas :
xmlResponse
est xmlDocument
=
XMLOuvre
(
wsResponse
.
XMLSource
,
fromString
)
xmlResponse.idPrescripcion
=
" "
+
xmlResponse.idPrescripcion
xmlResponse.idReceta
=
" "
+
xmlResponse.idReceta
reponse
est JSON
=
XMLVersJSON
(
xmlResponse
)
Fabrice
Signaler
0
0
Voroltinquo
#3
Membre enregistré
3 883 messages
Popularité : +227 (347 votes)
Posté le 28 septembre 2022 - 08:40
Bonjour,
Compiles tu en 32 bits ou en 64 bits.
Si tu compile en 32 bits c'est logique. Sinon tu peux éventuellement tenter
1-Désérialiser ton XML
2-Sérialiser le résultat en JSON
--
Il y a peut être plus simple, mais, ça tourne
Signaler
0
0
Corina
#4
Posté le 28 septembre 2022 - 08:58
Bonjour,
Merci à vous deux pour les réponses. Je vais essayer les deux solutions qu'ils proposent
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte