ExtractJSONStructure()
Syntaxe
ExtractJSONStructure(JSONValeur, *Memoire, Structure [, Options])Description
Extrait les membres de la valeur JSON de type #PB_JSON_Object dans de la structure spécifiée, en mémoire.
Arguments
JSONValeur La valeur JSON.
La valeur doit être de type #PB_JSON_Object.*Memoire L'adresse de la mémoire de la structure à remplir. Structure Le type de la structure à remplir. Options (optionnel) Avec #PB_JSON_NoClear, la structure ne sera pas effacée avant l'extraction des données JSON: Si les données JSON ne spécifient pas de champ de structure, la valeur du champ actuel sera conservée.
Sans #PB_JSON_NoClear, la structure entière sera effacée avant l'extraction des données à partir de JSON.
Valeur de retour
Aucune.
Remarques
La structure sera vidée de tout contenu précédent avant d'extraire les valeurs de JSON à moins que #PB_JSON_NoClear soit défini.
L'extraction est réalisée de manière récursive si la structure contient d'autres structures, des tableaux, des listes ou des maps.
Si la valeur JSON contient des membres qui n'ont pas le bon type pour correspondre à un membre de la structure, ils seront ignorés et l'élément de structure correspondante est laissé vide.
Tous les caractères '*' ou '$' sont supprimés des noms des membres de la structure avant de les comparer aux membres de l'objet JSON. Ainsi, une clé de membre ne doit pas inclure ces caractères.
La comparaison des clés de membre avec les noms des membres de la structure est réalisée de façon sensible à la casse. Si les données #JSON ont été créées ou parcourues avec l'option #PB_JSON_NoCase, la comparaison est effectuée suivant la casse.
Exemple
Structure Personne Nom$ Age.l List Livres.s() EndStructure Donnees$ = "{" + Chr(34) + "Nom" + Chr(34) + ": " + Chr(34) + "Jean Dupond" + Chr(34) + ", " + Chr(34) + "Age" + Chr(34) + ": 42, " + Chr(34) + "Livres" + Chr(34) + ": [" + Chr(34) + "Investir pour les nuls" + Chr(34) + ", " + Chr(34) + "Dépenser pour les nuls ;)" + Chr(34) + "] }" ParseJSON(0, Donnees$) ExtractJSONStructure(JSONValue(0), @P.Personne, Personne) Debug P\Nom$ Debug P\Age Debug ListSize(P\Livres()) ; Résultat : Jean Dupond ; 42 ; 2
Voir aussi
ExtractJSONArray(), ExtractJSONList(), ExtractJSONMap(), InsertJSONArray(), InsertJSONList(), InsertJSONMap(), InsertJSONStructure(), SetJSONObject(), JSONType()
OS Supportés
Tous