JSONParse

Parseert tekst als JSON-gegevens en houdt de geparseerde JSON-weergave in het geheugen zodat u deze kunt hergebruiken met andere JSON-functies.

Opmaak 

JSONParse ( json )

Parameters 

json - een tekstuitdrukking of een veld dat een JSON-object of een array bevat.

Resulterend gegevenstype 

tekst

Afkomstig uit versie 

22.0

Beschrijving 

JSONParse evalueert eerst de ingevoerde json-tekstexpressie, parseert vervolgens de JSON-tekst en slaat een binaire weergave in het geheugen op. Wanneer JSONParse een variabele of scriptparameter instelt, of wordt gebruikt in andere berekeningen, is deze binaire weergave beschikbaar voor andere JSON-functies om de geparseerde gegevens te verwerken.

JSONParse retourneert de oorspronkelijke tekst ongewijzigd als json geldig is, of geeft een foutmelding als deze ongeldig is. Voor ongeldige JSON retourneert JSONParse een foutbericht dat begint met '?', gevolgd door details over de parseringsfout, vergelijkbaar met andere JSON-functies.

Zie JSON-prestaties optimaliseren.

Opmerkingen 

  • Voor enkelvoudige JSON-bewerkingen kan het gebruik van andere JSON-functies rechtstreeks op de tekst worden uitgevoerd en kan JSONParse eerst worden gebruikt.

  • U kunt de JSONParsedState functie gebruiken om te controleren of JSON-gegevens zijn geparseerd en geldig zijn.

Voorbeeld 1 - Basisparsering van een eenvoudig JSON-object

JSONParse ( "{ \"naam\": \"Alea\", \"leeftijd\": 30, \"woonplaats\": \"New York\" }" ) retourneert { "naam": "Alea", "leeftijd": 30, "woonplaats": "New York" }, wat de ongewijzigde tekstweergave is van de JSON-gegevens.

Als deze optie is ingesteld op een variabele $$Contact, wordt de binaire weergave in het geheugen opgeslagen en beschikbaar voor berekeningen die $$Contact gebruiken.

Kopiëren
Let ( [
  $$Contact = JSONParse ( "{ \"naam\": \"Alea\", \"leeftijd\": 30, \"woonplaats\": \"New York\" }" )
  ] ;
  $$Contact
)

Als de JSON ongeldig is, parseert JSONParse de gegevens, maar wordt er een foutbericht weergegeven. Als de eerste komma bijvoorbeeld ontbreekt in de bovenstaande JSON, retourneert JSONParse het volgende:

Kopiëren
? * Regel 1, Kolom 18
  Ontbreekt ',' of '}' in objectdeclaratie

Voorbeeld 2 - Meerdere JSON-objecten parseren

Gebruikt JSONParse om JSON-tekst in $JSONText1 en $JSONText2 te parseren, haalt vervolgens elementen op uit de variabelen $ParsedJSON1 en $ParsedJSON2 zonder dat de JSON-gegevens opnieuw worden geparseerd.

Kopiëren
Variabele instellen [ $ParsedJSON1 ; Waarde: JSONParse ( $JSONText1 ) ]
Variabele instellen [ $ParsedJSON2 ; Waarde: JSONParse ( $JSONText2 ) ]
Variabele instellen [ $name ; Waarde: JSONGetElement ( $ParsedJSON1 ; "naam" ) ]
Variabele instellen [ $id ; Waarde: JSONGetElement ( $ParsedJSON2 ; "id" ) ]
Variabele instellen [ $category ; Waarde: JSONGetElement ( $ParsedJSON1 ; "categorie" ) ]

Voorbeeld 3 - Foutcontrole en het gebruik van geparseerde JSON in een lus

Demonstreert foutcontrole en laat zien hoe JSONParse kan worden gebruikt om de prestaties te verbeteren bij het verwerken van meerdere elementen uit dezelfde JSON-gegevens in een lus. $$JSON bevat de JSON-tekst in het Voorbeeld van JSON-gegevens. Nadat het script $$JSON parseert, controleert het of de geparseerde JSON geldig is (wanneer de JSONParsedState functie een positieve waarde retourneert). Als de geparseerde JSON geldig is, doorloopt het script de bakery.product-array en krijgt het waarden van de reeds geparseerde JSON-gegevens.

Kopiëren
Variabele instellen [ $ParsedJSON ; Waarde: JSONParse ( $$JSON ) ]
If [ JSONParsedState ( $ParsedJSON ) > 0 ]
   # JSON is geldig. Gebruik de geparseerde JSON voor meerdere bewerkingen.
Variabele instellen [ $ProductCount ; Waarde: ValueCount ( JSONListKeys ( $ParsedJSON ; "bakery.product" ) ) ]
   Variabele instellen [ $i ; Waarde: 0 ]
   Loop [ Wissen: Altijd ]
      Variabele instellen [ $Product ; Waarde: JSONGetElement ( $ParsedJSON ; "bakery.product[" & $i & "]" ) ]
      Variabele instellen [ $ProductName ; Waarde: JSONGetElement ( $Product ; "naam" ) ]
      Variabele instellen [ $ProductPrice ; Waarde: JSONGetElement ( $Product ; "price" ) ]
      # Productgegevens verwerken...
      Variabele instellen [ $i ; Waarde: $i + 1 ]
      Exit Loop If [ $i ≥ $ProductCount ]
   End Loop
Else
   # Handle JSON parsing error
   Aangepast dialoogvenster tonen [ "JSON-fout" ; $ParsedJSON ]
End If