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

<- ExtractJSONMap() - Json Index - FreeJSON() ->