NEWS
JSON über Blockly zerlegen
-
Hallo zusammen,
ich steh ein wenig auf dem Schlauch.
Ich versuche gerade, über ical einen Datenpunkt auszuwerten und weiß nicht so recht, wie das anzustellen ist.Die Struktur von ical sieht so aus:
[ {"date":"Noch 1 Tag", "event":"Aus", "_class":"ical_Wecker ical_today", "_date":"2022-05-22T22:00:00.000Z", "_end":"2022-06-03T22:00:00.000Z", "_IDID":"AE86E138-91AB-43AE-A23F-3D49E3C02064", "_allDay":true,"_private":false, "_rule":" ", "location":"", "_calName":"Wecker", "_calColor":"#000000", "_object":{"type":"VEVENT", "params"[], "created":"2022-05-23T04:19:37.000Z", "end":"2022-06-03T22:00:00.000Z", "dtstamp":"2022-05-23T04:19:37.000Z", "start":"2022-05-22T22:00:00.000Z", "datetype":"date", "lastmodified":"2022-05-23T04:19:37.000Z", "sequence":"0", "summary":"Aus", "uid":"AE86E138-91AB-43AE-A23F-3D49E3C02064", "url":{"params":{"VALUE":"URI"},"val":""} } }, {"date":"Noch 10 Stunden", "event":"Charge", "_class":"ical_Wecker ical_today", "_date":"2022-06-02T12:00:00.000Z", "_end":"2022-06-02T21:00:00.000Z", "_IDID":"934F9AE2-BD8D-41AA-A205-FE4A5D604A3E", "_allDay":false, "_private":false, "_rule":" ", "location":"100", "_calName":"Wecker", "_calColor":"#000000", "_object":{"type":"VEVENT", "params":[], "created":"2022-06-02T11:16:51.000Z", "end":"2022-06-02T21:00:00.000Z", "dtstamp":"2022-06-02T11:16:52.000Z", "start":"2022-06-02T12:00:00.000Z", "datetype":"date-time", "lastmodified":"2022-06-02T11:16:51.000Z", "location":"100", "sequence":"0", "summary":"Charge", "uid":"934F9AE2-BD8D-41AA-A205-FE4A5D604A3E", "url":{"params":{"VALUE":"URI"},"val":""} } } ]Nun möchte ich den Datenpunkt "location" auswerten.
Dazu hatte ich folgendes erstellt:

Das hat auch erstmal das gewünschte Ergebnis gebracht, solange ich nur 1 Event im Kalender hatte. Nun habe ich, wie oben 2 Events im Kalender.
Eines namens "Aus", dessen "location" leer ist.
Eines namens "Charge", dessen "location" mit dem Wert 100 gefüllt ist.Der Inhalt meiner socLevel ist nun ",100"
Ich erkläre mir das so, dass beide "location" Datenpunkte zu einer Liste zusammen gefasst werden.Was muss ich tun, dass ich in meiner Variable nur den "location" Datenpunkt für den Eintrag mit "event":"Charge" bekomme?
Vielen Dank für sachdienliche Hinweise.
Alex -
Hallo zusammen,
ich steh ein wenig auf dem Schlauch.
Ich versuche gerade, über ical einen Datenpunkt auszuwerten und weiß nicht so recht, wie das anzustellen ist.Die Struktur von ical sieht so aus:
[ {"date":"Noch 1 Tag", "event":"Aus", "_class":"ical_Wecker ical_today", "_date":"2022-05-22T22:00:00.000Z", "_end":"2022-06-03T22:00:00.000Z", "_IDID":"AE86E138-91AB-43AE-A23F-3D49E3C02064", "_allDay":true,"_private":false, "_rule":" ", "location":"", "_calName":"Wecker", "_calColor":"#000000", "_object":{"type":"VEVENT", "params"[], "created":"2022-05-23T04:19:37.000Z", "end":"2022-06-03T22:00:00.000Z", "dtstamp":"2022-05-23T04:19:37.000Z", "start":"2022-05-22T22:00:00.000Z", "datetype":"date", "lastmodified":"2022-05-23T04:19:37.000Z", "sequence":"0", "summary":"Aus", "uid":"AE86E138-91AB-43AE-A23F-3D49E3C02064", "url":{"params":{"VALUE":"URI"},"val":""} } }, {"date":"Noch 10 Stunden", "event":"Charge", "_class":"ical_Wecker ical_today", "_date":"2022-06-02T12:00:00.000Z", "_end":"2022-06-02T21:00:00.000Z", "_IDID":"934F9AE2-BD8D-41AA-A205-FE4A5D604A3E", "_allDay":false, "_private":false, "_rule":" ", "location":"100", "_calName":"Wecker", "_calColor":"#000000", "_object":{"type":"VEVENT", "params":[], "created":"2022-06-02T11:16:51.000Z", "end":"2022-06-02T21:00:00.000Z", "dtstamp":"2022-06-02T11:16:52.000Z", "start":"2022-06-02T12:00:00.000Z", "datetype":"date-time", "lastmodified":"2022-06-02T11:16:51.000Z", "location":"100", "sequence":"0", "summary":"Charge", "uid":"934F9AE2-BD8D-41AA-A205-FE4A5D604A3E", "url":{"params":{"VALUE":"URI"},"val":""} } } ]Nun möchte ich den Datenpunkt "location" auswerten.
Dazu hatte ich folgendes erstellt:

Das hat auch erstmal das gewünschte Ergebnis gebracht, solange ich nur 1 Event im Kalender hatte. Nun habe ich, wie oben 2 Events im Kalender.
Eines namens "Aus", dessen "location" leer ist.
Eines namens "Charge", dessen "location" mit dem Wert 100 gefüllt ist.Der Inhalt meiner socLevel ist nun ",100"
Ich erkläre mir das so, dass beide "location" Datenpunkte zu einer Liste zusammen gefasst werden.Was muss ich tun, dass ich in meiner Variable nur den "location" Datenpunkt für den Eintrag mit "event":"Charge" bekomme?
Vielen Dank für sachdienliche Hinweise.
Alex -
@paul53 said in JSON über Blockly zerlegen:
@aski71 sagte: nur den "location" Datenpunkt für den Eintrag mit "event":"Charge" bekomme?

Hm. Haut leider nicht hin.
Leider wird nicht in den "falls" Zweig abgebogen. Also: Attribut "event" vom Objekt "obj" = "Charge" wird nicht erkannt. -
@paul53 said in JSON über Blockly zerlegen:
@aski71 sagte: nur den "location" Datenpunkt für den Eintrag mit "event":"Charge" bekomme?

Hm. Haut leider nicht hin.
Leider wird nicht in den "falls" Zweig abgebogen. Also: Attribut "event" vom Objekt "obj" = "Charge" wird nicht erkannt. -
@mcu said in JSON über Blockly zerlegen:
@aski71 Der DP hat kein korrekten JSON:

Doppelpunkt fehlt dort."params":[],Sorry, das ist nur ein, der mir beim hier reinkopieren passiert ist. Im Original JSON ist der Doppelpunkt enthalten.
-
@mcu Hm. Bei mir nicht. Er geht nicht in den "falls" Zweig. Hab das genauso runter gedengelt, wie in Deinem Screenshot. Unterschied ist nur die tatsächliche ObjektID, in dem das steht und ich habe geringfügig andere Variablennamen.
-
@mcu said in JSON über Blockly zerlegen:
@aski71 Und das Log dazu? Welcher Fehler oder gar nichts kommt?
Der erste debug output kommt. danach nur noch "ermittelter wert = undefined".
Ich mache gleich mal einen log auf die Liste @paul53 -
Hallo zusammen,
ich steh ein wenig auf dem Schlauch.
Ich versuche gerade, über ical einen Datenpunkt auszuwerten und weiß nicht so recht, wie das anzustellen ist.Die Struktur von ical sieht so aus:
[ {"date":"Noch 1 Tag", "event":"Aus", "_class":"ical_Wecker ical_today", "_date":"2022-05-22T22:00:00.000Z", "_end":"2022-06-03T22:00:00.000Z", "_IDID":"AE86E138-91AB-43AE-A23F-3D49E3C02064", "_allDay":true,"_private":false, "_rule":" ", "location":"", "_calName":"Wecker", "_calColor":"#000000", "_object":{"type":"VEVENT", "params"[], "created":"2022-05-23T04:19:37.000Z", "end":"2022-06-03T22:00:00.000Z", "dtstamp":"2022-05-23T04:19:37.000Z", "start":"2022-05-22T22:00:00.000Z", "datetype":"date", "lastmodified":"2022-05-23T04:19:37.000Z", "sequence":"0", "summary":"Aus", "uid":"AE86E138-91AB-43AE-A23F-3D49E3C02064", "url":{"params":{"VALUE":"URI"},"val":""} } }, {"date":"Noch 10 Stunden", "event":"Charge", "_class":"ical_Wecker ical_today", "_date":"2022-06-02T12:00:00.000Z", "_end":"2022-06-02T21:00:00.000Z", "_IDID":"934F9AE2-BD8D-41AA-A205-FE4A5D604A3E", "_allDay":false, "_private":false, "_rule":" ", "location":"100", "_calName":"Wecker", "_calColor":"#000000", "_object":{"type":"VEVENT", "params":[], "created":"2022-06-02T11:16:51.000Z", "end":"2022-06-02T21:00:00.000Z", "dtstamp":"2022-06-02T11:16:52.000Z", "start":"2022-06-02T12:00:00.000Z", "datetype":"date-time", "lastmodified":"2022-06-02T11:16:51.000Z", "location":"100", "sequence":"0", "summary":"Charge", "uid":"934F9AE2-BD8D-41AA-A205-FE4A5D604A3E", "url":{"params":{"VALUE":"URI"},"val":""} } } ]Nun möchte ich den Datenpunkt "location" auswerten.
Dazu hatte ich folgendes erstellt:

Das hat auch erstmal das gewünschte Ergebnis gebracht, solange ich nur 1 Event im Kalender hatte. Nun habe ich, wie oben 2 Events im Kalender.
Eines namens "Aus", dessen "location" leer ist.
Eines namens "Charge", dessen "location" mit dem Wert 100 gefüllt ist.Der Inhalt meiner socLevel ist nun ",100"
Ich erkläre mir das so, dass beide "location" Datenpunkte zu einer Liste zusammen gefasst werden.Was muss ich tun, dass ich in meiner Variable nur den "location" Datenpunkt für den Eintrag mit "event":"Charge" bekomme?
Vielen Dank für sachdienliche Hinweise.
Alex@aski71 Hi Alex, JSONata ist ziemlich mächtig. Du kannst damit direkt ohne Schleife den gewünschten location-Wert extrahieren:
$[event='Charge'].locationFalls mehrere Charge-Events vorkommen und du willst nur das erste haben:
$[event='Charge'][0].locationHier kannst du die JSONata Befehle testen:
https://try.jsonata.org/



