FB_JsonDomParser
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. |
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
Ausgänge
Name | Typ |
---|---|
initStatus | HRESULT |
Methoden
Name | Beschreibung |
---|---|
Fügt ein Array-Member zu einem JSON-Objekt hinzu. | |
Fügt ein Base64-Member zu einem JSON-Objekt hinzu. | |
Fügt ein Bool-Member zu einem JSON-Objekt hinzu. | |
Fügt ein DateTime-Member zu einem JSON-Objekt hinzu. | |
Fügt ein DcTime-Member zu einem JSON-Objekt hinzu. | |
Fügt ein Double-Member zu einem JSON-Objekt hinzu. | |
Fügt ein FileTime-Member zu einem JSON-Objekt hinzu. | |
Fügt ein HexBinary-Member zu einem JSON-Objekt hinzu. | |
Fügt ein Int64-Member zu einem JSON-Objekt hinzu. | |
Fügt ein Int-Member zu einem JSON-Objekt hinzu. | |
Fügt ein JSON-Member zu einem JSON-Objekt hinzu. | |
Fügt ein NULL-Member zu einem JSON-Objekt hinzu. | |
Fügt ein Object-Member zu einem JSON-Objekt hinzu. | |
Fügt ein String-Member zu einem JSON-Objekt hinzu. | |
Fügt ein UInt64-Member zu einem JSON-Objekt hinzu. | |
Fügt ein UInt-Member zu einem JSON-Objekt hinzu. | |
Liefert das erste Element eines Arrays. | |
Liefert das letzte Element eines Arrays. | |
Löscht den Inhalt eines Arrays. | |
Kopiert den Inhalt des DOM-Speichers in eine Variable vom Datentyp STRING. | |
Extrahiert ein JSON-Objekt aus einem Key und speichert dieses in einer Variablen vom Datentyp STRING. | |
Kopiert den Wert eines Keys in eine Variable vom Datentyp STRING. | |
Sucht in einem JSON-Dokument nach einem bestimmten Property. | |
Sucht in einem JSON-Dokument nach einem bestimmten Property (Pfad-spezifisch). | |
Liefert die Anzahl der Elemente in einem JSON-Array. | |
Liefert den Wert an der aktuellen Iterator-Position eines Arrays. | |
Liefert den Wert eines Arrays an einem angegebenen Index. | |
Dekodiert einen Base64-Wert aus einem JSON-Property. | |
Liefert den Value eines Properties vom Datentyp BOOL. | |
Liefert den Value eines Properties vom Datentyp DATE_AND_TIME. | |
Liefert den Values eines Properties vom Datentyp DCTIME. | |
Gibt den Inhalt des DOM-Speichers als Datentyp STRING(255) zurück. | |
Gibt die Länge eines JSON-Dokuments im DOM-Speicher zurück. | |
Liefert den Root-Knoten eines JSON-Dokuments im DOM-Speicher. | |
Liefert den Value eines Properties vom Datentyp LREAL. | |
Liefert den Value eines Properties vom Datentyp DCTIME. | |
Dekodiert den HexBinary-Inhalt eines Properties und schreibt diesen an eine bestimmte Speicheradresse, | |
Liefert den Value eines Properties vom Datentyp DINT. | |
Liefert den Value eines Properties vom Datentyp LINT. | |
Liefert den Value eines Properties als Datentyp STRING(255) zurück. | |
Liefert die Länge eines Properties, wenn dieses ein JSON-Dokument ist. | |
Liefert die aktuelle Einstellung für MaxDecimalPlaces. | |
Liefert den Namen eines JSON-Property-Members an der Position des aktuellen Iterators, | |
Liefert den Value eines JSON-Property-Members an der Position des aktuellen Iterators, | |
Liefert den Value eines Properties vom Datentyp STRING(255). | |
Liefert die Länge eines Properties, wenn dessen Value ein String ist. | |
Liefert den Typ eines Property-Values. | |
Liefert den Value eines Properties vom Datentyp UDINT. | |
Liefert den Value eines Properties vom Datentyp ULINT. | |
Prüft, ob ein bestimmtes Property im DOM-Speicher vorhanden ist. | |
Prüft, ob es sich bei einem gegebenen Property um ein Array handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp Base64 handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp BOOL handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp Double (SPS: LREAL) handelt. | |
Prüft, ob der Value eines gegebenen Properties FALSE ist. | |
Prüft, ob der Value eines Properties ein HexBinary-Format hat. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp Integer (SPS: DINT) handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp LINT handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um ein Zeitformat laut ISO8601 handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um NULL handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um einen numerischen Wert handelt. | |
Prüft, ob es sich bei dem gegebenen Property um ein weiteres JSON-Objekt handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp STRING handelt. | |
Prüft, ob der Wert eines gegebenen Properties TRUE ist. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp UDINT handelt. | |
Prüft, ob es sich bei dem Value eines gegebenen Properties um den Datentyp ULINT handelt. | |
Lädt ein JSON-Dokument aus einer Datei. | |
Liefert das erste Kindelement unterhalb eines JSON-Properties. | |
Liefert das letzte Kindelement unterhalb eines JSON-Properties. | |
Erzeugt ein neues, leeres JSON-Dokument im DOM-Speicher. | |
Liefert das nächste Element in einem Array. | |
NextMember | Liefert das nächste Property in einem JSON-Dokument. |
Lädt ein JSON-Objekt zur weiteren Verarbeitung in den DOM-Speicher. | |
PopbackValue | Löscht das Element am Ende eines Arrays. |
Hängt einen Base64-Wert an das Ende eines Arrays an. | |
Hängt einen Base64-Wert an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp DATE_AND_TIME an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp DCTIME an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp Double an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp FILETIME an das Ende eines Arrays an. | |
Hängt einen HexBinary-kodierten Wert an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp Int64 an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp INT an das Ende eines Arrays an. | |
Fügt ein JSON-Dokument zum Ende eines Arrays hinzu. | |
Hängt einen NULL-Wert an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp String an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp UInt64 an das Ende eines Arrays an. | |
Hängt einen Wert vom Datentyp UInt an das Ende eines Arrays an. | |
Entfernt alle Kindelemente von einem gegebenen Property. | |
Löscht den Wert des aktuellen Array-Iterators. | |
Löscht das Property an dem aktuellen Iterator. | |
Entfernt ein Kindelement von einem gegebenen Property. | |
Speichert ein JSON-Dokument in einer Datei. | |
Setzt den Value eines Properties auf den Typ „Array“. | |
Setzt den Value eines Properties auf einen Base64-kodierten Wert. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp BOOL. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp DATE_AND_TIME. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp DCTIME. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp Double. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp FILETIME. | |
Setzt den Value eines Properties auf einen HexBinary-kodierten Wert. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp INT | |
Setzt den Value eines Properties auf einen Wert vom Datentyp Int64. | |
Fügt in den Value eines Properties ein weiteres JSON-Dokument ein. | |
Setzt die aktuelle Einstellung für MaxDecimalPlaces. | |
Setzt den Value eines Properties auf den Wert NULL. | |
Setzt den Value eines Properties auf den Typ „Object“. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp STRING. | |
Setzt den Value eines Properties auf einen Wert vom Datentyp UInt. | |
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 |
- LoadDocumentFromFile
- AddArrayMember
- AddBase64Member
- AddBoolMember
- AddDateTimeMember
- AddDcTimeMember
- AddDoubleMember
- AddFileTimeMember
- AddHexBinaryMember
- AddInt64Member
- AddIntMember
- AddJsonMember
- AddNullMember
- AddObjectMember
- AddStringMember
- AddUint64Member
- AddUintMember
- ArrayBegin
- ArrayEnd
- ClearArray
- CopyDocument
- CopyFrom
- CopyJson
- CopyString
- ExceptionRaised
- FindMember
- FindMemberPath
- GetArraySize
- GetArrayValue
- GetArrayValueByIdx
- GetBase64
- GetBool
- GetDateTime
- GetDcTime
- GetDocument
- GetDocumentLength
- GetDocumentRoot
- GetDouble
- GetFileTime
- GetHexBinary
- GetInt
- GetInt64
- GetJson
- GetJsonLength
- GetMaxDecimalPlaces
- GetMemberName
- GetMemberValue
- GetString
- GetStringLength
- GetType
- GetUint
- GetUint64
- HasMember
- IsArray
- IsBase64
- IsBool
- IsDouble
- IsFalse
- IsHexBinary
- IsInt
- IsInt64
- IsISO8601TimeFormat
- IsNull
- IsNumber
- IsObject
- IsString
- IsTrue
- IsUint
- IsUint64
- MemberBegin
- MemberEnd
- NewDocument
- NextArray
- ParseDocument
- PushbackBase64Value
- PushbackBoolValue
- PushbackCopyValue
- PushbackDateTimeValue
- PushbackDcTimeValue
- PushbackDoubleValue
- PushbackFileTimeValue
- PushbackHexBinaryValue
- PushbackInt64Value
- PushbackIntValue
- PushbackJsonValue
- PushbackNullValue
- PushbackStringValue
- PushbackUint64Value
- PushbackUintValue
- RemoveAllMembers
- RemoveArray
- RemoveMember
- RemoveMemberByName
- SaveDocumentToFile
- SetAdsProvider
- SetArray
- SetBase64
- SetBool
- SetDateTime
- SetDcTime
- SetDouble
- SetFileTime
- SetHexBinary
- SetInt
- SetInt64
- SetJson
- SetMaxDecimalPlaces
- SetNull
- SetObject
- SetString
- SetUint
- SetUint64
- Swap