Beim Lesen einer JSON-Nachricht erstellt der Parser aus dem Eingabebitstrom eine Nachrichtenbaumstruktur. Dazu ordnet er die JSON-Werte entsprechenden Elementtypen für Nachrichtenbaumstrukturen zu. Bei der Serialisierung einer Nachrichtenbaumstruktur in den Ausgabebitstrom werden die Elementtypen der Baumstruktur wieder den entsprechenden JSON-Wertetypen zugeordnet.
Der JSON-Parser verwendet bei der Zuordnung von JSON-Werten zu Elementtypen der Nachrichtenbaumstruktur folgende Regeln:
JSON-Wert im Bitstrom | Durch Parser zugeordneter Wert |
---|---|
String | CHARACTER |
JSON-Zahlenwert mit folgender Syntax:
|
INTEGER |
JSON-Zahlenwert mit folgender Syntax:
|
FLOAT |
Boolean | BOOLEAN |
Null | NULL |
Die JSON-Serialisierung verwendet bei der Zuordnung der Elemente der Nachrichtenbaumstruktur zu JSON-Wertetypen folgende Regeln:
Elementtyp der Nachrichtenbaumstruktur | Durch JSON-Serialisierung zugeordneter Wert | |
---|---|---|
JSON-Typ | Format | |
BIT | String | Jede aus 0 und 1 bestehende Ziffernfolge |
BLOB | String | Gerade Zahl aus Hexadezimalziffern |
CHARACTER | String | CHAR-Daten mit JSON-Zeichenfolge-Escapes für jedes doppelte Anführungszeichen (") oder Backslash (\) innerhalb der CHAR-Zeichenfolge |
DATE | String | ESQL-Standardzeichenfolge-Darstellung 'yyyy-mm-dd' |
TIME, GMTTIME | String | ESQL-Standardzeichenfolge-Darstellung 'hh:mm:ss.ffffff' |
INTEGER | Nummer |
|
FLOAT | Nummer |
|
DECIMAL | Nummer |
Dezimalliterale wie 'NAN' oder 'INF' werden bei der Serialisierung in JSON nicht unterstützt. |
BOOLEAN | Boolean | true oder false Bei Booleschen Werten unterstützt die Serialisierung nur logische Baumstrukturelemente mit den Werten 'true' oder 'false'. 'Unknown' wird nicht unterstützt. |
NULL | Null | Null |
ROW | Objekt | Hinweis: Durch direkte Zuordnung eines ROW-Typs zu einer Baumstruktur der JSON-Domäne ergeben sich keine JSON-Arrays.
Generiert den folgenden JSON-Bitstrom:
|
ROW | Array | Zur Generierung eines JSON-Arrays aus einem ROW-Typ müsste auch das JSON.Array-Feld gesetzt sein.
Generiert den folgenden JSON-Bitstrom:
|