CopyString
Diese Methode kopiert den Wert eines Keys in eine Variable vom Datentyp STRING, welche eine beliebige Länge haben kann. Als Rückgabewert liefert die Methode die Länge des kopierten Strings (inklusive Nullterminierung). Falls der Zielpuffer zu klein ist, wird dieser durch eine Nullterminierung geleert und als Länge 0 zurückgegeben.
Syntax
METHOD CopyString : UDINT
VAR_INPUT
v : SJsonValue;
END_VAR
VAR_IN_OUT CONSTANT
pStr : STRING;
nStr : UDINT;
END_VAR
Rückgabewert
Name | Typ |
---|---|
CopyString | UDINT |
Eingänge
Name | Typ |
---|---|
v | SJsonValue |
/ Ein-/Ausgänge
Name | Typ |
---|---|
pStr | STRING |
nStr | UDINT |
Beispielaufruf:
Gegeben sei das folgende JSON-Dokument, das in den DOM-Speicher geladen wird:
sMessage := ' {"serialNumber":"123","batteryVoltage":"1547mV","clickType":"SINGLE"}';
Der Wert des Keys „clickType“ soll extrahiert und in einer Variablen vom Datentyp STRING gespeichert werden. Zunächst wird das JSON-Dokument iterativ nach dem Property „clickType“ durchsucht.
jsonDoc := fbJson.ParseDocument(sMessage);
jsonIterator := fbJson.MemberBegin(jsonDoc);
jsonIteratorEnd := fbJson.MemberEnd(jsonDoc);
WHILE jsonIterator <> jsonIteratorEnd DO
sName := fbJson.GetMemberName(jsonIterator);
jsonValue := fbJson.GetMemberValue(jsonIterator);
IF sName = 'clickType' THEN
fbJson.CopyString(jsonValue, sString, SIZEOF(sString));
END_IF
jsonIterator := fbJson.NextMember(jsonIterator);
END_WHILE
Die Variable sString hat nach diesem Durchlauf folgenden Inhalt:
SINGLE