Function DE Version 12.11

@JsonCreate

Json

Syntax

@JsonCreate;
@JsonCreate(JSONTYPE);

Beschreibung

Die @Function erzeugt eine neue leere JSON-Struktur und gibt ein VSPECHJSON (HJS) Handle zurück.

Wird die Funktion ohne Parameter aufgerufen, wird standardmäßig ein JSON-Object erzeugt.
Wird als optionaler Parameter JSONTYPE der Wert "Array" angegeben, wird stattdessen ein JSON-Array erzeugt.

Das zurückgegebene Handle kann anschließend mit Funktionen wie @JsonAdd, @JsonGet oder @JsonSerialize verwendet werden.
Ein zurückgegebenes Handle muss nach der Verwendung mit @JsonRelease wieder freigegeben werden.

TEXT JSONTYPE:
Optionaler Typ der zu erzeugenden JSON-Struktur.
"Object" JSON-Object {}
"Array" JSON-Array []

Die Angabe ist nicht case-sensitiv. Wird kein JSONTYPE angegeben, wird ein JSON-Object erzeugt.
Nach der aktuellen Implementierung führen auch andere Textwerte als "Array" zur Erzeugung eines JSON-Objects.

Als Return-Wert liefert die @Function bei einem Fehler @ERROR, andernfalls ein VSPECHJSON (HJS) Handle auf die neu erzeugte JSON-Struktur.


Beispiel: @JsonCreate

HJSON:=@JsonCreate;
@JsonAdd(HJSON;"Max Mustermann";"Name");
@JsonAdd(HJSON;42;"Age");
JSONTEXT:=@JsonSerialize(HJSON);
@JsonRelease(HJSON);

Das Beispiel erzeugt zunächst ein leeres JSON-Object und fügt anschließend zwei Werte hinzu.
Die erzeugte JSON-Struktur entspricht:
{"Name":"Max Mustermann","Age":42.0}
Anschließend wird das JSON-Object mit @JsonSerialize in seine Textdarstellung umgewandelt und das erzeugte VSPECHJSON (HJS) Handle mit @JsonRelease wieder freigegeben.

Beispiel: Beispiel: @JsonCreate("Array");

HJSON:=@JsonCreate("Array");
@JsonAdd(HJSON;"Text1");
@JsonAdd(HJSON;"Text2");
@JsonAdd(HJSON;100);
JSONTEXT:=@JsonSerialize(HJSON);
@JsonRelease(HJSON);

Das Beispiel erzeugt ein leeres JSON-Array und fügt anschließend drei Elemente hinzu.
Die erzeugte JSON-Struktur entspricht:
["Text1","Text2",100.0]
Das erzeugte VSPECHJSON (HJS) Handle wird nach der Verwendung mit @JsonRelease wieder freigegeben.