@JsonRelease
Syntax
@JsonRelease(HJSON);
Beschreibung
Diese @Function gibt ein zuvor erzeugtes VSPECHJSON (HJS) Handle wieder frei.
Die Funktion reduziert den Referenzzähler des durch HJSON referenzierten JSON-Objects oder JSON-Arrays. Erreicht der Referenzzähler den Wert 0, werden die JSON-Struktur und alle von ihr besessenen JSON-Werte freigegeben.
Nach erfolgreicher Ausführung wird das in HJSON gespeicherte JSON-Handle auf NULL gesetzt und darf anschließend nicht mehr mit anderen JSON-Funktionen verwendet werden.
Wird dasselbe JSON-Object oder JSON-Array noch durch andere JSON-Handles referenziert oder ist es Bestandteil einer anderen JSON-Struktur mit eigener Referenz, bleiben diese Referenzen weiterhin gültig.
Jedes VSPECHJSON (HJS) Handle, das beispielsweise von @JsonCreate, @JsonLoad oder @JsonGet zurückgegeben wurde, sollte nach der Verwendung mit @JsonRelease wieder freigegeben werden.
VSPECHJSON HJSON:
Handle des freizugebenden JSON-Objects oder JSON-Arrays.
HJSON muss ein gültiges VSPECHJSON (HJS) Handle enthalten, das auf ein JSON-Object oder JSON-Array verweist.
Als Return-Wert liefert die @Function bei einem Fehler @ERROR, andernfalls TRUE.
Beispiel: @JsonRelease(HJSON);
HJSON:=@JsonCreate;
@JsonAdd(HJSON;"Max Mustermann";"Name");
@JsonAdd(HJSON;42;"Age");
JSONTEXT:=@JsonSerialize(HJSON);
@JsonRelease(HJSON);
Das Beispiel erzeugt ein JSON-Object, fügt zwei Werte hinzu und wandelt die erzeugte JSON-Struktur anschließend mit @JsonSerialize in ihre Textdarstellung um.
Danach wird das erzeugte VSPECHJSON (HJS) Handle mit @JsonRelease wieder freigegeben und darf anschließend nicht mehr verwendet werden.
Der erzeugte JSON-Text vor der Freigabe des Handles lautet:
{"Name":"Max Mustermann","Age":42.0}
