,

JSON

Kostenlos

Den richtigen Wert aus dem JSON holen.

Liest Werte per JSONPath aus einem JSON-Text und gibt sie als Text und Zahl aus. Praktisch für Schnittstellen, die mehr liefern, als du brauchst.

Artikelnummer: smo-json-smolabs Kategorien: , Schlagwort:

Beschreibung

Logikbaustein, der Werte per JSONPath aus einem JSON-Text liest. Der JSON-Text kommt von einem anderen Baustein (Web-Request, MQTT Subscribe, Datei) an den Eingang. Der Baustein behandelt auch Sonderfälle sauber: null, Schlüssel aus Ziffern ("12101"), Zahlen als Text, Listen (Arrays) und Schlüssel mit Punkt.

Gerät
Gira X1
Version
1.0.0
Lizenz
Ein Schlüssel je X1 (MAC-Adresse), dauerhaft nutzbar
Thema
Kommunikation

Anleitung

Eingang und Parameter

Name Bedeutung
JSON der JSON-Text. Jeder neue Text wird gelesen und alle Pfade werden ausgewertet
Anzahl Pfade 1 bis 20, Vorgabe 3
Pfad 1…n JSONPath-Ausdruck, siehe unten. Ein leerer Pfad wird ignoriert. Eine Änderung eines Pfads wertet das letzte JSON neu aus
Lizenzschlüssel Schlüssel für diesen X1, siehe „Lizenz“

Ausgänge

Ausgang Bedeutung
JSON gültig 1, wenn der letzte Text gelesen werden konnte
Text 1…n Wert des ersten Treffers als Text
Zahl 1…n Wert des ersten Treffers als Zahl, wenn er eine hat
Treffer 1…n Anzahl der Treffer, 0 = nicht gefunden
Lizenzstatus, Debug Lizenzprüfung bzw. Fehler im JSON oder in einem Pfad

Bei keinem Treffer bleiben „Text“ und „Zahl“ auf dem letzten Wert, „Treffer“ wird 0. Ist das JSON ungültig, bleiben alle Ausgänge stehen, „JSON gültig“ wird 0 und „Debug“ nennt die Stelle („JSON ungültig: … (Zeichen 17)“).

Was wie ausgegeben wird
JSON-Wert Text Zahl
Zeichenkette der Inhalt (Ersatzschreibweisen wie \", \n, ä aufgelöst) die Zahl, wenn der Text wie eine aussieht ("12.5")
Zahl wie im JSON geschrieben der Wert (zu große Zahlen wie 1e999 haben keinen Zahlenwert)
true / false true / false 1 / 0
null leer keine Ausgabe
Objekt, Liste der JSON-Text dieses Teils keine Ausgabe

JSONPath

Schreibweise Bedeutung
$ Wurzel. $.main.temp ist der Schlüssel temp im Objekt main
$.a.b, a.b, .a.b ohne $ gilt der Pfad ab der Wurzel
$['a.b'], $["a.b"] Schlüssel in Klammern, nötig bei Punkt oder Leerzeichen im Namen
$.12101 Schlüssel aus Ziffern sind normale Namen
$.list[0], $.list[-1] Element einer Liste, -1 ist das letzte
$.list[*], $.obj.* alle Elemente bzw. Werte. „Treffer“ zählt sie, „Text“/„Zahl“ nennen den ersten
$..id den Schlüssel id auf jeder Ebene
$.list[?(@.id==801)].main Filter: Elemente, deren Feld id gleich 801 ist. Vergleiche == != < <= > >= mit Text in '…', Zahl, true, false oder null. [?(@.main)] prüft nur, ob das Feld da ist

Nicht unterstützt sind Bereiche ([1:3]), mehrere Elemente in einer Klammer ([0,1]), Funktionen und mehrere Bedingungen in einem Filter. Ein Filter mit mehreren Bedingungen wie [?(@.a && @.b)] meldet keinen Fehler, sondern liefert 0 Treffer. Textvergleiche sind genau (Groß- und Kleinschreibung zählen).

Gelesen werden bis zu 64 Ebenen. Eine Byte-Order-Mark (unsichtbares Kennzeichen für UTF-8 am Textanfang) ist erlaubt.

Beispiel

{"main":{"temp":12.5},"weather":[{"id":500,"main":"Rain"},{"id":801,"main":"Clouds"}],"rain":null}
Pfad Text Zahl Treffer
$.main.temp 12.5 12,5 1
$.weather[1].main Clouds 1
$.weather[?(@.id>=800)].main Clouds 1
$.weather[*].id 500 500 2
$.rain leer 1
$.snow (unverändert) (unverändert) 0

Lizenz

Der Lizenzschlüssel wird im GPA (Gira Projekt Assistent) im Parameter „Lizenzschlüssel“ eingetragen. Der Baustein prüft ihn beim Start auf dem X1, offline und gebunden an die MAC-Adresse des X1. Der Ausgang „Lizenzstatus“ zeigt das Ergebnis, bei einem Schlüssel für ein anderes Gerät auch die MAC-Adresse dieses X1. Ohne gültigen Schlüssel bleibt der Baustein untätig. In der Simulation des GPA am PC läuft er ohne Lizenzprüfung, damit sich Logikblätter testen lassen.

Den Schlüssel erhältst du beim Kauf über smolabs.de.

Verwendetes Icon: wie „MQTT Publish“.

Changelog

Version 1.0.0
  • Erste Version.

Kompatibilität mit Gira X1 und Gira HomeServer

Die Funktion ist nur für die hier genannten Firmwarestände zugesichert. Vor einem Firmware-Update des Geräts bitte diese Tabelle prüfen.

Baustein-VersionGerät und FirmwareStatus
1.0.0Gira X1, Firmware 4.0.350Kompatibel
1.0.0Gira X1, Firmware 3.0.52Kompatibel
1.0.0Gira X1, Firmware 2.8.874Kompatibel
1.0.0Gira X1, Firmware 2.8.869Kompatibel
1.0.0Gira X1, Firmware 2.8.858Kompatibel
1.0.0Gira X1, Firmware 2.7.585Kompatibel

Rezensionen

Es gibt noch keine Rezensionen.

Schreibe die erste Rezension für „JSON“

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen