ExtractJSONStructure()

Syntax

ExtractJSONStructure(JSONWert, *Puffer, Struktur [, Flags])
Beschreibung
Extrahiert Elemente vom angegebenen JSON-Wert des Typs #PB_JSON_Object in den angegebenen Struktur-Speicher. Der gesamte vorherige Inhalt der Struktur wird gelöscht, bevor die JSON-Werte extrahiert werden, sofern nicht das #PB_JSON_NoClear Flag gesetzt ist.

Parameter

JSONWert Der JSON-Wert. Der Wert muss vom Typ #PB_JSON_Object sein.
*Puffer Die Adresse des zu füllenden Struktur-Speichers.
Struktur Der Typ der zu füllenden Struktur.
Flags (optional) Wenn dieses Flag auf #PB_JSON_NoClear gesetzt wird, dann wird die Struktur vor dem Extrahieren der JSON-Daten nicht gelöscht: Wenn die JSON-Daten kein Strukturfeld angeben, wird der Wert des aktuellen Felds beibehalten. Wenn nicht angegeben, wird die gesamte Struktur gelöscht, bevor Daten aus JSON extrahiert werden.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Anmerkungen

Die Extrahierung erfolgt rekursiv, wenn die Struktur weitere Strukturen, Arrays, Listen oder Maps enthält. Wenn der JSON-Wert Elemente enthält, die nicht den richtigen Typ haben, um mit einem Struktur-Element übereinzustimmen, dann werden sie ignoriert und das zugehörige Struktur-Element bleibt leer.

Jegliche '*' oder '$' Zeichen werden aus den Namen der Struktur-Elemente entfernt, bevor diese mit den JSON-Objektelementen verglichen werden. Daher darf ein Mitgliedsschlüssel diese Zeichen nicht beinhalten, um korrekt mit einem Struktur-Element übereinzustimmen.

Der Vergleich der Mitgliederschlüssel ("member keys") mit den Namen der Struktur-Elemente erfolgt unter Beachtung der Groß- und Kleinschreibung. Wenn die JSON-Daten mit dem #PB_JSON_NoCase Flag erstellt oder geparst wurden, dann erfolgt der Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung.

Beispiel

  Structure Person
    Name$
    Age.l
    List Books.s()
  EndStructure

  Input$ = "{" + Chr(34) + "Name" + Chr(34) + ": " + Chr(34) + "John Smith" + Chr(34) + ", " + 
                 Chr(34) + "Age" + Chr(34) + ": 42, " + 
                 Chr(34) + "Books" + Chr(34) + ": [" +
                           Chr(34) + "Investing For Dummies" + Chr(34) + ", " + 
                           Chr(34) + "A Little Bit of Everything For Dummies" + Chr(34) + "] }"
                           
  ParseJSON(0, Input$)
  ExtractJSONStructure(JSONValue(0), @P.Person, Person)
  
  Debug P\Name$
  Debug P\Age
  Debug ListSize(P\Books())

Siehe auch

ExtractJSONArray(), ExtractJSONList(), ExtractJSONMap(), InsertJSONArray(), InsertJSONList(), InsertJSONMap(), InsertJSONStructure(), SetJSONObject(), JSONType()

Unterstützte OS

Alle

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