JSONParse
Parst Text als JSON-Daten und behält die geparste JSON-Darstellung im Speicher, damit Sie sie mit anderen JSON-Funktionen wiederverwenden können.
Format
JSONParse (json)
Parameter
json
- beliebiger Textausdruck oder Feld, das ein JSON-Objekt oder -Array enthält.
Zurückgegebener Datentyp
Text
Ursprung in Version
22.0
Beschreibung
JSONParse wertet zunächst den eingegebenen Textausdruck json
aus, parst (analysiert) dann den JSON-Text und speichert eine binäre Darstellung im Speicher. Wenn JSONParse eine Variable oder einen Scriptparameter setzt oder in anderen Formeln verwendet wird, steht diese binäre Darstellung anderen JSON-Funktionen zur Verarbeitung der analysierten Daten zur Verfügung.
JSONParse gibt den ursprünglichen Text unverändert zurück, wenn json
gültig ist, oder gibt eine Fehlermeldung zurück, wenn er ungültig ist. Bei ungültigem JSON gibt JSONParse eine Fehlermeldung zurück, die mit „?“ beginnt, gefolgt von Details zum Parsing-Fehler, ähnlich wie bei anderen JSON-Funktionen.
Siehe Optimieren der JSON-Leistung.
Hinweise
-
Bei einzelnen JSON-Operationen kann die direkte Verwendung anderer JSON-Funktionen auf den Text genauso gut funktionieren wie die vorherige Verwendung von JSONParse.
-
Mit der Funktion „JSONParsedState“ können Sie überprüfen, ob JSON-Daten erfolgreich geparst wurden und gültig sind.
Beispiel 1 - Grundlegendes Parsen eines einfachen JSON-Objekts
JSONParse ( "{ \"Name\": \"Alea\", \"Alter\": 30, \"Stadt\": \"New York\" }" )
gibt { "Name": "Alea", "Alter": 30, "Stadt": "New York" } zurück, was die unveränderte Textdarstellung der JSON-Daten ist.
Bei Einstellung auf eine Variable $$Kontakt wird die binäre Darstellung im Speicher zwischengespeichert und steht für Formeln zur Verfügung, die $$Kontakt verwenden.
Setze Var ( [
$$Kontakt = JSONParse ( "{ \"Name\": \"Alea\", \"Alter\": 30, \"Stadt\": \"New York\" }" )
] ;
$$Kontakt
)
Wenn die JSON-Daten ungültig sind, analysiert JSONParse die Daten, gibt jedoch eine Fehlermeldung zurück. Wenn beispielsweise das erste Komma im obigen JSON fehlt, gibt JSONParse Folgendes zurück:
? * Zeile 1, Spalte 18
Fehlt ',' oder '}' in Objekt-Deklaration
Beispiel 2 - Parsen mehrerer JSON-Objekte
Verwendet JSONParse, um JSON-Text in $JSONText1 und $JSONText2 zu parsen, und ruft dann Elemente aus den Variablen $ParsedJSON1 und $ParsedJSON2 ab, ohne dass die JSON-Daten erneut geparst werden.
Variable setzen [ $ParsedJSON1 ; Wert: JSONParse ( $JSONText1 ) ]
Variable setzen [ $ParsedJSON2 ; Wert: JSONParse ( $JSONText2 ) ]
Variable setzen [ $Name ; Wert: JSONGetElement ( $ParsedJSON1 ; "Name" ) ]
Variable setzen [ $id ; Wert: JSONGetElement ( $ParsedJSON2 ; "id" ) ]
Variable setzen [ $Kategorie ; Wert: JSONGetElement ( $ParsedJSON1 ; "Kategorie " ) ]
Beispiel 3 - Fehlerprüfung und Verwendung von geparstem JSON in einer Schleife
Demonstriert die Fehlerprüfung und zeigt, wie JSONParse verwendet werden kann, um die Leistung bei der Verarbeitung mehrerer Elemente aus denselben JSON-Daten in einer Schleife zu verbessern. $$JSON enthält den JSON-Text in den Beispiel für JSON-Daten. Nachdem das Script $$JSON geparst hat, überprüft es, ob der geparste JSON gültig ist (wenn die Funktion „JSONParsedState“ einen positiven Wert zurückgibt). Wenn die geparste JSON-Datei gültig ist, durchläuft das Script die Schleife Baeckerei.Produkt
und ruft Werte aus den bereits geparsten JSON-Daten ab.
Variable setzen [ $ParsedJSON ; Wert: JSONParse ( $$JSON ) ]
Wenn [ JSONParsedState ( $ParsedJSON ) > 0 ]
# JSON ist gültig. Verwenden Sie die geparste JSON-Datei für mehrere Operationen.
Variable setzen [ $ProduktAnzahl ; Wert: ElementeAnzahl ( JSONListKeys ( $ParsedJSON ; "Baeckerei.Produkt" ) ) ]
Variable setzen [ $i ; Wert: 0 ]
Schleife (Anfang) [ Löschen: Immer ]
Variable setzen [ $Produkt ; Wert: JSONGetElement ( $ParsedJSON ; "Baeckerei.Produkt[" & $i & "]" ) ]
Variable setzen [ $ProduktName ; Wert: JSONGetElement ( $Produkt ; "Name" ) ]
Variable setzen [ $ProduktPreis ; Wert: JSONGetElement ( $Produkt ; "Preis" ) ]
# Produktdaten verarbeiten...
Variable setzen [ $i ; Wert: $i + 1 ]
Verlasse Schleife wenn [ $i ≥ $ProduktAnzahl ]
Schleife (Ende)
Sonst
# JSON-Parsing-Fehler behandeln
Eigenes Dialogfeld anzeigen [ "JSON-Fehler" ; $ParsedJSON ]
Ende (wenn)