JsonMod: Zugriff mit multi auf Array

Begonnen von CQuadrat, 10 Juni 2022, 11:17:10

Vorheriges Thema - Nächstes Thema

CQuadrat

Hallo Zusammen,

kann mich vielleicht jemand in die richtige Richtung stupsen?

Ich habe in einem JSON ein Array (hier in "coordinates"):

...,
"geometry":{
"type":"Point",
"coordinates":[6.64,49.25]},
...


Wie kann ich hier mit multi auf die einzelnen Werte (hier: Länge und Breite) zugreifen? Die Doku hilft mir leider nicht wirklich weiter  :(


Danke und Gruß

Christoph
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

yersinia

#1
Imho ist das aus JsonMod-Sicht ein Readinginhalt und nichts, was du über readingList-paramter referenzieren kannst. Eventuell geht aber ein Nachbearbeiten des über property() zurückgeleiferten Wertes.
Du kannst aber auch das Reading geometry.coordinates mit dem Wert [6.64,49.25] nachbehandeln - Thema userReading usw.

Allerdings wäre list von dem, was du bisher versucht hast, sehr hilfreich.

Edit: es geht doch, siehe nächster post
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

CQuadrat

Ich habe es mit single hinbekommen:


single(jsonPath('$.features.0.geometry.coordinates[0]'), 'Länge', 0);
single(jsonPath('$.features.0.geometry.coordinates[1]'), 'Breite', 0)
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue