PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → [WD24] Exploitation JSON
[WD24] Exploitation JSON
Débuté par jb.bernard, 17 mai 2019 10:20 - 4 réponses
Posté le 17 mai 2019 - 10:20
Bonjour,

Je viens de migrer en version 24 pour l'exploitation native des JSON, format que je ne connais pas.
J'utilise une API qui renvoi un fichier JSON dans lequel je souhaite extraire des coordonnées géographiques.

Voici mon code :
// On géolocalise le centre du cercle
gMaReq.URL="https://api-adresse.data.gouv.fr/search/?q=55+rue+du+faubourg+saint+honore&postcode=75008"
gMaReponse=RESTEnvoie(gMaReq)
SI ErreurDétectée ALORS
Erreur(ErreurInfo(errComplet))
SINON
Info(gMaReponse.Contenu)

MonAdresse est un JSON <Description="api-adresse.data.gouv.fr">
MonAdresse=gMaReponse.Contenu

Trace (MonAdresse.features.geometry.coordinates[0])


Je récupère bien la réponse.
J'ai intégré un fichier de réponse dans les descriptions externes pour pouvoir utiliser l'autocomplétion cependant impossible d'extraire les coordonnée qui correspondraient aux champs MonAdresse.features.geometry.coordinates.0 et MonAdresse.features.geometry.coordinates.1

Lors de l'execution du trace... j'ai l'erreur : "Le variant n'est pas un objet."


Merci par avance de votre aide.

Bonne journée
Membre enregistré
953 messages
Posté le 17 mai 2019 - 10:59
bonjour Ambroise,

alors dans un premier temps, les tableaux sous windev commence toujours à 1 et non pas 0.
Ensuite, dans un JSON, lorsqu'un menbre est suivi du sigle [ c'est qu'il représente une rubrique de type tableau, c'est bien le cas pour votre membre 'coordinates' , mais également pour le membre 'features'.

donc je pense qu'avec ceci çà devrait fonctionner :

Trace(MonAdresse.features[1].geometry.coordinates[1])
Trace(MonAdresse.features[1].geometry.coordinates[2])



bon dèv ;)
Membre enregistré
953 messages
Posté le 17 mai 2019 - 11:04
pour compléter,
sous windev dans la description de votre JSON,
pour les tableaux vous avez un tout petit symbole bleu foncé avec des petits points pour le différencier





Posté le 17 mai 2019 - 11:27
Un grand merci Christophe.

Effectivement, cela fonctionne. Je viens de comprendre la différence entre le symbole du cube et le symbole du cube avec une table dessus.

Je peux continuer mon dev.

A+
Posté le 16 octobre 2024 - 08:51
DELFI INFO-Chris a écrit :
bonjour Ambroise,

alors dans un premier temps, les tableaux sous windev commence toujours à 1 et non pas 0.
Ensuite, dans un JSON, lorsqu'un menbre est suivi du sigle [ c'est qu'il représente une rubrique de type tableau, c'est bien le cas pour votre membre 'coordinates' , mais également pour le membre 'features'.

donc je pense qu'avec ceci çà devrait fonctionner :

Trace(MonAdresse.features[1].geometry.coordinates[1])
Trace(MonAdresse.features[1].geometry.coordinates[2])



bon dèv ;)


Merci beaucoup pour ces explications, ça m'a débloqué également !!! :) :) :)