PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2025 → WM2025+iOS+JSON : je deviens fou une nouvelle fois !
WM2025+iOS+JSON : je deviens fou une nouvelle fois !
Débuté par Pascal BOULESTEIX, 28 mar. 2025 08:09 - 4 réponses
Membre enregistré
1 112 messages
Posté le 28 mars 2025 - 08:09
Bonjour à tous
Je reviens une nouvelle fois sur l'exploitation d'une réponse Json issu d'un RESTEnvoie.

Notez ceci : le bug ne se produit qu'en configutaion iOS, que ce soit en mode GO ou en mode Installation depuis TestFlight

Pour savoir s'il y a des données à traiter, je dois m'assurer que le noeud "NotFound" est présent ou pas dans le Json

Voici ce que renvoie le webservice s'il n'y a rien à traiter :
{"observations":[{"NotFound":"-1"}]}


Pour info, voici une réponse dans laquelle il y a de la matière à traiter
{"observations":[
{"observation":{"longitude":"1.288003","latitude":"46.036753","is_GPS":"0","altitude":"379","pays":"FR","Dept":"87","insee":"173","nom_commune":"SAINT-PARDOUX","territoire":"FXX","longitude_lieudit":"1.288003","latitude_lieudit":"46.036753","lieudit":"Lac de Saint-Pardoux","unik_organisme":"10","unik_utilisateur":"6954","DateObs":"1983-11-20","heureobs":"00:00:00","duree":"","Absence":"0","Commentaire_citation":"","Note":"0","Confidentiel":"0","Origine_Statut_Reproduction":"0","Statut_Reproduction":"0","nbr_echantillon":"1","etude":"","Classe":"O","Espece":"2506","ordre":"Pelecaniformes","famille":"Ardeidae","noms":"Ardea cinerea Linnaeus, 1758","nomf":"H\u00e9ron cendr\u00e9","type_fiche":"4","chn":"0","chr":"0","commune":"0","rouge":"0","vigilance":"0","invasive":"0","patrimoniale":"0","non_commune":"0","Taxref":"2506","Taxref_ref":"","liste_prioritaire":"","nbr_citations_saisies":"40019","Sexe":"?","Age":"VOL","code_echantillon":"SIMPLE","code_precision_nombre":"0","financement_public":"0","code_gestionnaire":"","unik_utilisateur_asso":"","unik_materiel":"1","indice1":"","indice2":"","indice3":"","indice4":"","nombre":"1","uuid":"84d75c3c-baac-11ed-b46d-5254000001d3","debut_repro":"0201","fin_repro":"0731","taxref_statut":"P"}}
]}


Dans l'image qui suit, vous verrez comment je teste la présence de NotFound





Qu'est-ce-que l'on voit ?

1 - un point d'arrêt
2 - ce que l'on ne voit pas c'est la pas-à-pas qui nous amène gentilement sur le code SI réponse.observations[1].NotFound..Existe ALORS
3 - sur le pas-à-pas de cette instruction, on voit que le curseur signalant la prochaine instruction à exécuter est sur la ligne bOKDonnées=vrai !
4 - alors que l'on voit dans la fenêtre d’évaluation de l'expression réponse.observations[1].NotFound..Existe est vrai

En théorie, c'est la ligne info qui devrait être la prochaine ligne à exécuter !

Notez, que ce schéma de code est toujours le même pour tester les réponses RESTEnvoie.

Un oeil neuf s'impose

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
1 112 messages
Posté le 28 mars 2025 - 11:53
Salut à tous
Je viens de trouvé un contournement au problème.
Au lieu de passer par un champ variant valorisé avec
réponse=JSONVersVariant(laRéponse.Contenu)


je travaille avec un champ de type JSON

réponseJson=laRéponse.Contenu


Avec le code ci-dessous, j'arrive à un résultat correcte
SI réponseJson.observations..Existe ALORS
SI réponseJson.observations[1].NotFound..Existe ALORS
Info("DONNEES HISTORIQUES","Aucune donnée historique.")
RETOUR
SINON
bOkDonnees=Vrai
FIN
SINON
bOkDonnees=Faux
FIN


QUESTION : avant de changer tout mon code (75 web-services), que pensez-vous de tout cela ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
885 messages
Posté le 28 mars 2025 - 12:59
Bonjour, je l'utilise depuis que cette option est apparue. C'est beaucoup plus simple. Vous avez plus facilement accès à la structure et au contenu du document.

Rubén

--
Rubén Sánchez Peña

https://depot.pcsoft.fr/search.awp…

https://www.linkedin.com/in/rub%C3%A9n-s%C3%A1nchez-pe%C3%B1a-7a868212/
Membre enregistré
1 112 messages
Posté le 28 mars 2025 - 15:10
Salut Rubén
Dans le cas qui m'anime, la déclaration de la variable json et la copie du laRéponse.Contenu dans cette variable ont suffi.
Y a-t-il des subtilités particulières par rapport à l'usage des variants tel que créés avec des JSONVersVariant ?

--
Pascal Boulesteix
Applications Visiolittoral et WNat
Membre enregistré
885 messages
Posté le 28 mars 2025 - 16:33
Bonjour, je n'ai pas eu de problème. Vous pouvez connaître l'existence de nœuds et le nombre de nœuds dans un tableau.

Rubén

--
https://depot.pcsoft.fr/search.awp…

https://www.linkedin.com/in/rub%C3%A9n-s%C3%A1nchez-pe%C3%B1a-7a868212/
https://play.google.com/store/apps/details…