Lade...
 

CX_JSON_PARSER

CX_JSON_PARSER

Klassenhierarchie
Beschreibung:

Diese Klasse stellt die Funktionalität bereit, um JSON in Objekte umzuwandeln und um diese wieder als JSON zu serialisieren.
Dies wird explizit über eine gesonderte Klasse getan, da ein JSON seit dem RFC 7159 auch aus einem Basisdatentypen (wie INTEGER) bestehen kann. 123 ist beispielsweise ein gültiges JSON.

Sollte das JSON ein Objekt, oder ein Array sein, dann wird ein CX_JSON_OBJECT oder CX_JSON_ARRAY vom Parser konstruiert. Diese bieten die Möglichkeit, die Datenstruktur weiter zu verarbeiten. Alles, was von LoadFromString und LoadFromFile zurückgegeben wird, kann auch wieder an WriteToString und WriteToFile übergeben werden und das Ergebnis-JSON wird (bis auf die Formatierung) identisch mit dem Ausgangs-JSON sein.
Um diese Abbildung umsetzen zu können, musste für die JSON-Werte true und false der Typ CX_BOOLEAN verwendet werden. Die InstantView-Literale TRUE und FALSE werden nämlich in die Integer-Werte 0 und 1 übersetzt. Dabei geht die Typinformation verloren.

Code-Beispiel:
Var(parser, result)
CreateTransObject(CX_JSON_PARSER) -> parser

"{\"vname\":\"Peter\", \"nname\":\"Müller\", \"age\":26, \"married\":true}"
parser Call(LoadFromString) -> result
result //-> CX_JSON_OBJECT
result parser Call(WriteToString) //-> {"vname":"Peter","nname":"Müller","age":26,"married":true}

"true" parser Call(LoadFromString) -> result
result                            //-> CX_BOOLEAN(TRUE)
result parser Call(WriteToString) //-> true

TRUE  parser Call(WriteToString) //-> 1
FALSE parser Call(WriteToString) //-> 0

 

Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
LoadFromFile   STRING ANY* Liest eine Datei ein und interpretiert deren Inhalt als JSON und liefert ein Element zurück, welches dessen Wert repräsentiert
LoadFromString   STRING ANY* Interpretiert den übergebenen STRING als JSON und liefert ein Element zurück, welches dessen Wert repräsentiert
WriteToFile   STRING, ANY*   Serialisiert den übergebenen JSON-kompatiblen Wert und schreibt ihn in die angegebene Datei.
WriteToPrettyFile
234480
  STRING,
ANY*
  Serialisiert den übergebenen JSON-kompatiblen Wert und schreibt ihn in die angegebene Datei. Elemente werden zur besseren lesbarkeit mit 4 Leerzeichen eingerückt und durch Zeilenumbrüche getrennt.
WriteToPrettyString
234480
  ANY* STRING Serialisiert den übergebenen JSON-kompatiblen Wert als JSON und gibt den STRING zurück. Elemente werden zur besseren lesbarkeit mit 4 Leerzeichen eingerückt und durch Zeilenumbrüche getrennt.
WriteToString   ANY* STRING Serialisiert den übergebenen JSON-kompatiblen Wert als JSON und gibt den STRING zurück

* MA = Member-Access-Funktion
ANY* = STRING  | CX_STRING | INTEGER | CX_INTEGER | CX_FLOAT | CX_NUMERIC | CX_BOOLEAN | CX_JSON_OBJECT | CX_JSON_ARRAY | NULL

Datenverzeichnis (DDI)
Datenfeld Typ Referenz-Klasse I* Kurzbeschreibung

* I = Indizierbares Datenfeld

 

Verwendung in AppsWH
Modul Kurzbeschreibung