CX_JSON_PARSER
Klassenhierarchie
- CX_CLASS
- CX_JSON_PARSER 168573
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
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
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|
* I = Indizierbares Datenfeld
Modul | Kurzbeschreibung |
---|---|