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.

Kopieren
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:

Kopieren
? * 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.

Kopieren
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.

Kopieren
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)