JSON/XML

<< 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äleJsonXml_Kanalliste

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

 

01_json_xml_DE

 

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.

 

02_json_xml

 

 

03_json_xml

 

 

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.