|
<< Click to Display Table of Contents >> Navigation: Komponenten > Kommunikation > JSON/XML |
Der JSON/XML Treiber ist eine unsichtbare Server-Komponente mit der Möglichkeit Daten eines Webservers abzufragen.
Die vom Webserver gelieferten JSON- oder XML-Daten werden im Kanaleditor in einer Baumstruktur angezeigt. Dort können einzelne Elemente ausgewählt werden. Die gewählten Elemente werden dann als Datenpunkte im Kommunikationsfenster zur weiteren Verknüpfung zur Verfügung gestellt.
Datenpunkte der Komponente
Name |
Typ |
Funktion |
|---|---|---|
Abfrage einmalig |
Eingang |
Über ein Ein-Signal an diesem Eingang wird eine Abfrage ausgeführt. |
Abfrage läuft |
Ausgang |
Gibt ein true aus, wenn die Abfrage aktiv ist. |
Abfrage zyklisch |
Bidirektional |
Über ein Ein-Signal an diesem Eingang werden zyklisch Abfragen ausgeführt. Die Wartezeit zwischen zwei Abfragen kann separat eingestellt werden. |
Abfrage zyklisch - Pause [s] |
Bidirektional |
Hier erfolgt die Ein-/Ausgabe der Pausen-Zeit zwischen zwei zyklischen Abfragen in Sekunden. |
Antwort als Text |
Ausgang |
Hier wird das Ergebnis der Abfrage als Text ausgegeben. |
Dynamisch |
Ordner |
Im Ordner Dynamisch werden die Ausgänge für die Daten-Elemente angezeigt. Je nach Typ werden unterschiedliche Datenpunkte zur Verfügung gestellt. |
Diagnose [Text] |
Ausgang |
Hier werden die Statusausgaben formatiert ausgegeben. Verbunden mit dem Eingang [Signal] des Protokollfensters werden dort die Diagnoseinformationen angezeigt. |
Texteingang [JSON/XML] |
Eingang |
Texteingang für die Formate JSON und XML. |
Zeitstempel |
Ausgang |
Hier wird die Datum und Uhrzeit der letzten Abfrage ausgegeben. |
Eigenschaften der Komponente
Name |
Standard |
Funktion |
|---|---|---|
Kanäle |
|
Hier werden die importierten Daten-Elemente aufgelistet. Diese erscheinen dann als Unterordner im Datenpunkt-Ordner Dynamisch. |
Abfrage zyklisch - Pause [s] |
60 |
Im eingestellten Intervall werden die Daten aus dem Server ausgelesen. |
Abfrage zyklisch |
|
Ist dieser Parameter gesetzt, werden die Daten zyklisch aus dem Server ausgelesen. |
Kanäle
Einstellung : Web Request:
Tragen Sie im Feld "URL" den Link zur abzufragenden Datei und stellen Sie das entsprechende Datenformat (JSON oder XML) ein. Zusätzlich haben Sie die Möglichkeit, den Abfragetyp zu definieren und falls eine Authentifizierung verlangt wird, diese zu hinterlegen. Nachdem alle nötigen Einstellungen getätigt sind, führen Sie die erste eigentliche Abfrage aus, um das eintreffende Datenpaket zu parsen. Der JSON/XML-Parser wird die Struktur der Daten entsprechend einer Baumstruktur in fortlaufenden Zeilen darstellen.
Setzen Sie in der Spalte "Wert auswählen" entsprechend ein Häkchen, wenn Sie ein Datenelement übernehmen und über einen Datenpunkt an der Komponenten ausgeben wollen. In der Spalte Datentyp wählen Sie zusätzlich den gewünschten Datentyp aus. Der Datentyp lässt sich nur ändern wenn der entsprechen Datenpunkt nicht verknüpft ist. Die Verknüpfung muss gegeben falls vor Änderung des Datentyps getrennt werden.
Falls es sich bei den ausgewählten Datenpunkten um Text handelt, wählen Sie "String" aus. Handelt es sich um einen Zahlenwert, wählen Sie "Double" und für Datum-Uhrzeit-Werte das "DateTime"-Format. Für alle anderen Fälle wählen Sie den Datentyp "Object". Die ausgewählten Einträge werden abschließend in einer dynamischen Ordnerstruktur dargestellt. Angelegte Abfrage-Strukturen können über die Menüpunkte "Import" und "Export" gesichert und wiederhergestellt werden.
Default Header = User-Agent=Eisbaer
JSON Test-URL:
http://echo.jsontest.com/key/value/otherkey/othervalue
http://www.busbaer.de/test/testjson
XML Test-URL:
http://www.busbaer.de/test/test.xml

Einstellung : Datei:
Für die Abfrage von lokalen Dateien muss als URL der Speicherpfad der zu parsenden JSON-/XML-Datei eingetragen werden. Abfragetyp/Authentifizierung werden selbstverständlich unnötig und entsprechend ausgegraut. Das Parsen und die weiteren Schritte erfolgen wie schon unter "Einstellungen : Web Request" beschrieben, nur dass Sie am Kommunikationseingang "Texteingang JSON/XML" des Parsers auch direkt die zu parsende Datei übergeben können.
Einstellung : Textbox:
Diese Einstellungsvariante arbeitet ähnlich wie eine Zwischenablage und dient sozusagen als Zwischenglied z.B. zwischen einem MQTT-Broker und dem EisBären, wobei der Topic in diesem Fall vom Broker nicht einen Wert enthält, sondern mehrere Informationen in einem JSON-String.
Stellen Sie die Auswahl auf "Textbox" und klicken Sie auf Abfrage - es wird sich ein Textfenster öffnen, in das Sie den zu parsenden JSON-String einfügen können. Mit OK wird die Baumstruktur der einzelnen Datenpunkte nach dem Parsen der Textbox aufgebaut und die benötigten Datentypen eingestellt werden. Wird bei den Einträgen jeweils "Wert auswählen" angehakt, wird nach Schließen des Fensters der Datenanschluß im Kommunkationsfenster dynamisch erzeugt. Zum Abschluß verbinden Sie den Kommunikationseingang "Texteingang JSON/XML" mit dem entsprechenden Topic des Brokers, der im genannten Beispiel den JSON-String enthält.


Tipp:
Erhalten Sie keine Antwort bei einer Abfrage oder beim Lesen von Dateien, könnte dies an einer falschen Formatauswahl liegen, der JSON/XML-Inhalt weicht erheblich von der Konformität ab, die Authentifizierung ist fehlgeschlagen oder der Abfragetyp ist nicht korrekt. Für eine weitere Analyse, wenn der Abruf nicht funktionieren sollte, verbinden Sie den Diagnose-Ausgang (Text) des Parsers z.B. mit dem Eingang eines Protokollfensters, um etwaige Fehlermeldungen oder Probleme erkennen zu können.