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