FB_JsonDomParser

FB_JsonDomParser 1:

Dieser Funktionsblock ist von demselben internen Funktionsbaustein abgeleitet wie der FB_JsonDynDomParser und bietet somit dasselbe Interface.

Die beiden abgeleiteten Funktionsblöcke unterscheiden sich nur in ihrer internen Speicherverwaltung. Der FB_JsonDomParser ist optimiert für schnelles und effizientes Parsen und Erstellen von JSON-Dokumenten, die nur wenig verändert werden. Für JSON-Dokumente, an denen viele Änderungen (bspw. das zyklische Ändern eines bestimmten Wertes im JSON-Dokument) vorgenommen werden, wird der Funktionsbaustein FB_JsonDynDomParser empfohlen.

WARNUNG

Verwendung von Router Speicher

Der Funktionsbaustein zieht bei jeder Änderung, z.B. bei den Methoden SetObject() oder SetJson(), neuen Speicher an. Die verwendete Menge von Router Speicher kann hierdurch nach wiederholten Aktionen stark anwachsen. Dieser allokierte Speicher wird erst durch den Aufruf der Methoden NewDocument() oder ParseDocument() wieder freigegeben.

FB_JsonDomParser 2:

Strings im UTF-8-Format

Die hier verwendeten Variablen vom Typ STRING nutzen das UTF-8-Format. Diese STRING-Formatierung ist üblich bei IoT/MQTT-Kommunikation sowie JSON-Dokumenten.

Um Sonderzeichen und Texte verschiedenster Sprachen empfangen zu können, wird der Zeichensatz in den Bibliotheken Tc3_IotBase und Tc3_JsonXml nicht auf den typischen Zeichensatz vom Datentyp STRING beschränkt. Stattdessen wird der Unicode-Zeichensatz als UTF-8-Format in Verbindung mit dem Datentyp STRING verwendet.

Bei Verwendung des ASCII-Zeichensatzes besteht kein Unterschied zwischen der typischen Formatierung in einem STRING und der UTF-8-Formatierung eines STRING.

Weitere Informationen zum UTF-8-STRING-Format sowie vorhandenen Anzeige- und Konvertierungsmöglichkeiten finden Sie in der Dokumentation der SPS-Bibliothek Tc2_Utilities.

Syntax

FUNCTION_BLOCK FB_JsonDomParser
VAR_OUTPUT
  initStatus     : HRESULT;
END_VAR

FB_JsonDomParser 3: Ausgänge

Name

Typ

initStatus

HRESULT

FB_JsonDomParser 4: Methoden

Name

Beschreibung

AddArrayMember

Fügt ein Array-Member zu einem JSON-Objekt hinzu.

AddBase64Member

Fügt ein Base64-Member zu einem JSON-Objekt hinzu.

AddBoolMember

Fügt ein Bool-Member zu einem JSON-Objekt hinzu.

AddDateTimeMember

Fügt ein DateTime-Member zu einem JSON-Objekt hinzu.

AddDcTimeMember

Fügt ein DcTime-Member zu einem JSON-Objekt hinzu.

AddDoubleMember

Fügt ein Double-Member zu einem JSON-Objekt hinzu.

AddFileTimeMember

Fügt ein FileTime-Member zu einem JSON-Objekt hinzu.

AddHexBinaryMember

Fügt ein HexBinary-Member zu einem JSON-Objekt hinzu.

AddInt64Member

Fügt ein Int64-Member zu einem JSON-Objekt hinzu.

AddIntMember

Fügt ein Int-Member zu einem JSON-Objekt hinzu.

AddJsonMember

Fügt ein JSON-Member zu einem JSON-Objekt hinzu.

AddNullMember

Fügt ein NULL-Member zu einem JSON-Objekt hinzu.

AddObjectMember

Fügt ein Object-Member zu einem JSON-Objekt hinzu.

AddStringMember

Fügt ein String-Member zu einem JSON-Objekt hinzu.

AddUint64Member

Fügt ein UInt64-Member zu einem JSON-Objekt hinzu.

AddUintMember

Fügt ein UInt-Member zu einem JSON-Objekt hinzu.

ArrayBegin

Liefert das erste Element eines Arrays.

ArrayEnd

Liefert das letzte Element eines Arrays.

ClearArray

Löscht den Inhalt eines Arrays.

CopyDocument

Kopiert den Inhalt des DOM-Speichers in eine Variable vom Datentyp STRING.

CopyJson

Extrahiert ein JSON-Objekt aus einem Key und speichert dieses in einer Variablen vom Datentyp STRING.

CopyString

Kopiert den Wert eines Keys in eine Variable vom Datentyp STRING.

FindMember

Sucht in einem JSON-Dokument nach einem bestimmten Property.

FindMemberPath

Sucht in einem JSON-Dokument nach einem bestimmten Property (Pfad-spezifisch).

GetArraySize

Liefert die Anzahl der Elemente in einem JSON-Array.

GetArrayValue

Liefert den Wert an der aktuellen Iterator-Position eines Arrays.

GetArrayValueByIdx

Liefert den Wert eines Arrays an einem angegebenen Index.

GetBase64

Dekodiert einen Base64-Wert aus einem JSON-Property.

GetBool

Liefert den Value eines Properties vom Datentyp BOOL.

GetDateTime

Liefert den Value eines Properties vom Datentyp DATE_AND_TIME.

GetDcTime

Liefert den Values eines Properties vom Datentyp DCTIME.

GetDocument

Gibt den Inhalt des DOM-Speichers als Datentyp STRING(255) zurück.

GetDocumentLength

Gibt die Länge eines JSON-Dokuments im DOM-Speicher zurück.

GetDocumentRoot

Liefert den Root-Knoten eines JSON-Dokuments im DOM-Speicher.

GetDouble

Liefert den Value eines Properties vom Datentyp LREAL.

GetFileTime

Liefert den Value eines Properties vom Datentyp DCTIME.

GetHexBinary

Dekodiert den HexBinary-Inhalt eines Properties und schreibt diesen an eine bestimmte Speicheradresse,

GetInt

Liefert den Value eines Properties vom Datentyp DINT.

GetInt64

Liefert den Value eines Properties vom Datentyp LINT.

GetJson

Liefert den Value eines Properties als Datentyp STRING(255) zurück.

GetJsonLength

Liefert die Länge eines Properties, wenn dieses ein JSON-Dokument ist.

GetMaxDecimalPlaces

Liefert die aktuelle Einstellung für MaxDecimalPlaces.

GetMemberName

Liefert den Namen eines JSON-Property-Members an der Position des aktuellen Iterators,

GetMemberValue

Liefert den Value eines JSON-Property-Members an der Position des aktuellen Iterators,

GetString

Liefert den Value eines Properties vom Datentyp STRING(255).

GetStringLength

Liefert die Länge eines Properties, wenn dessen Value ein String ist.

GetType

Liefert den Typ eines Property-Values.

GetUint

Liefert den Value eines Properties vom Datentyp UDINT.

GetUint64

Liefert den Value eines Properties vom Datentyp ULINT.

HasMember

Prüft, ob ein bestimmtes Property im DOM-Speicher vorhanden ist.

IsArray

Prüft, ob es sich bei einem gegebenen Property um ein Array handelt.

IsBase64

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp Base64 handelt.

IsBool

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp BOOL handelt.

IsDouble

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp Double (SPS: LREAL) handelt.

IsFalse

Prüft, ob der Value eines gegebenen Properties FALSE ist.

IsHexBinary

Prüft, ob der Value eines Properties ein HexBinary-Format hat.

IsInt

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp Integer (SPS: DINT) handelt.

IsInt64

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp LINT handelt.

IsISO8601TimeFormat

Prüft, ob es sich bei dem Value eines gegebenen Properties um ein Zeitformat laut ISO8601 handelt.

IsNull

Prüft, ob es sich bei dem Value eines gegebenen Properties um NULL handelt.

IsNumber

Prüft, ob es sich bei dem Value eines gegebenen Properties um einen numerischen Wert handelt.

IsObject

Prüft, ob es sich bei dem gegebenen Property um ein weiteres JSON-Objekt handelt.

IsString

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp STRING handelt.

IsTrue

Prüft, ob der Wert eines gegebenen Properties TRUE ist.

IsUint

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp UDINT handelt.

IsUint64

Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp ULINT handelt.

LoadDocumentFromFile

Lädt ein JSON-Dokument aus einer Datei.

MemberBegin

Liefert das erste Kindelement unterhalb eines JSON-Properties.

MemberEnd

Liefert das letzte Kindelement unterhalb eines JSON-Properties.

NewDocument

Erzeugt ein neues, leeres JSON-Dokument im DOM-Speicher.

NextArray

Liefert das nächste Element in einem Array.

NextMember

Liefert das nächste Property in einem JSON-Dokument.

ParseDocument

Lädt ein JSON-Objekt zur weiteren Verarbeitung in den DOM-Speicher.

PopbackValue

Löscht das Element am Ende eines Arrays.

PushbackBase64Value

Hängt einen Base64-Wert an das Ende eines Arrays an.

PushbackBoolValue

Hängt einen Base64-Wert an das Ende eines Arrays an.

PushbackDateTimeValue

Hängt einen Wert vom Datentyp DATE_AND_TIME an das Ende eines Arrays an.

PushbackDcTimeValue

Hängt einen Wert vom Datentyp DCTIME an das Ende eines Arrays an.

PushbackDoubleValue

Hängt einen Wert vom Datentyp Double an das Ende eines Arrays an.

PushbackFileTimeValue

Hängt einen Wert vom Datentyp FILETIME an das Ende eines Arrays an.

PushbackHexBinaryValue

Hängt einen HexBinary-kodierten Wert an das Ende eines Arrays an.

PushbackInt64Value

Hängt einen Wert vom Datentyp Int64 an das Ende eines Arrays an.

PushbackIntValue

Hängt einen Wert vom Datentyp INT an das Ende eines Arrays an.

PushbackJsonValue

Fügt ein JSON-Dokument zum Ende eines Arrays hinzu.

PushbackNullValue

Hängt einen NULL-Wert an das Ende eines Arrays an.

PushbackStringValue

Hängt einen Wert vom Datentyp String an das Ende eines Arrays an.

PushbackUint64Value

Hängt einen Wert vom Datentyp UInt64 an das Ende eines Arrays an.

PushbackUintValue

Hängt einen Wert vom Datentyp UInt an das Ende eines Arrays an.

RemoveAllMembers

Entfernt alle Kindelemente von einem gegebenen Property.

RemoveArray

Löscht den Wert des aktuellen Array-Iterators.

RemoveMember

Löscht das Property an dem aktuellen Iterator.

RemoveMemberByName

Entfernt ein Kindelement von einem gegebenen Property.

SaveDocumentToFile

Speichert ein JSON-Dokument in einer Datei.

SetArray

Setzt den Value eines Properties auf den Typ „Array“.

SetBase64

Setzt den Value eines Properties auf einen Base64-kodierten Wert.

SetBool

Setzt den Value eines Properties auf einen Wert vom Datentyp BOOL.

SetDateTime

Setzt den Value eines Properties auf einen Wert vom Datentyp DATE_AND_TIME.

SetDcTime

Setzt den Value eines Properties auf einen Wert vom Datentyp DCTIME.

SetDouble

Setzt den Value eines Properties auf einen Wert vom Datentyp Double.

SetFileTime

Setzt den Value eines Properties auf einen Wert vom Datentyp FILETIME.

SetHexBinary

Setzt den Value eines Properties auf einen HexBinary-kodierten Wert.

SetInt

Setzt den Value eines Properties auf einen Wert vom Datentyp INT

SetInt64

Setzt den Value eines Properties auf einen Wert vom Datentyp Int64.

SetJson

Fügt in den Value eines Properties ein weiteres JSON-Dokument ein.

SetMaxDecimalPlaces

Setzt die aktuelle Einstellung für MaxDecimalPlaces.

SetNull

Setzt den Value eines Properties auf den Wert NULL.

SetObject

Setzt den Value eines Properties auf den Typ „Object“.

SetString

Setzt den Value eines Properties auf einen Wert vom Datentyp STRING.

SetUint

Setzt den Value eines Properties auf einen Wert vom Datentyp UInt.

SetUint64

Setzt den Value eines Properties auf einen Wert vom Datentyp UInt64.

Voraussetzungen

TwinCAT Version

Hardware

Einzubindende Bibliotheken

TwinCAT 3.1, Build 4022

x86, x64, ARM

Tc3_JsonXml