DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des chaînes
  • Exemple de la fonction JSONVersVariant
JSONVersVariant (Exemple)
Exemple de la fonction JSONVersVariant
Lors de l'utilisation d'un JSON avec un contenu fixe, il est possible de déclarer une fois pour toutes des structures WLangage qui sont alimentées par une désérialisation du JSON avec la fonction Désérialise.
Mais, lors de l'exploitation d'un JSON dont le contenu est changeant, il faut le parcourir afin de récupérer l'ensemble de ses membres et valeurs. Le parcours se fait en transférant le JSON dans un variant. Ce code montre comment faire un parcours "générique" sur le variant chargé par du JSON.
sJSon est une chaîne ANSI = [
{
"Membre1": "Valeur Membre 1",
"Membre2": "Valeur Membre 2",
"Membre3": "Valeur Membre 3",
"Membre 4": {
"Membre 5": {
"Membre 6": 6,
"Membre 7": "Valeur Membre 7"
},
"Membre 8": {
"Membre 9":  9,
"Membre 10": "Valeur Membre 10"
}
}
}
]
 
soit vjs = JSONVersVariant(sJSon)
 
POUR TOUT _Membre DE vjs..Membre
 
SI _Membre..Membre..Occurrence = 0 ALORS
Trace("Le membre " + _Membre..Nom + " a la valeur " + _Membre..Valeur)
SINON
Trace("Le membre " + _Membre..Nom + " a " + _Membre..Membre..Occurrence + ...
" autres membres")
ParcoursMembresVariant(_Membre)
FIN
FIN
 
PROCÉDURE INTERNE ParcoursMembresVariant(x)
 
POUR TOUT _Membre DE x..Membre
SI _Membre..Membre..Occurrence = 0 ALORS
Trace(Répète("--", ChaîneOccurrence(dbgInfo(dbgPile), RC)) + ...
"Le membre " + _Membre..Nom + " a la valeur " + _Membre..Valeur)
SINON
Trace(Répète("--", ChaîneOccurrence(dbgInfo(dbgPile), RC)) + ...
"Le membre " + _Membre..Nom + " a " + _Membre..Membre..Occurrence + ...
 " autres membres...")
ParcoursMembresVariant(_Membre)
FIN
FIN
FIN
Version minimum requise
  • Version 19
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 25/05/2022

Signaler une erreur ou faire une suggestion | Aide en ligne locale