NEWS
Ersten Eintrag aus JSON entfernen
-
Hallo. Wie kann ich aus einem Json-Datenpunkt den ersten Eintrag entfernen.
Mein Json schaut so aus:

Nun möchte ich z.B. das um 13 Uhr der erste Eintrag wo das Feld Zeit-beginn auf 13:00 steht, entfernt wird, um 14 Uhr dann wieder usw.
Geht das mit einem Blockly?@manfredhi sagte: den ersten Eintrag entfernen.
Wozu?
-
@manfredhi sagte: den ersten Eintrag entfernen.
Wozu?
-
@paul53 sagte in Ersten Eintrag aus JSON entfernen:
Wozu?
Soll immer mit der gerade aktuellen STunde beginnen.
@manfredhi sagte: Soll immer mit der gerade aktuellen STunde beginnen.
Das kann man dort berücksichtigen, wo das JSON ausgewertet wird.
-

-
-
@mickym
Es funktioniert. DANKE. nur ich versteh diese Syntax im JSONata Ausdruck überhaupt nicht.@manfredhi Na Du kannst es auch ohne JSONATA machen - wird halt nur umständlicher.
Wenn du es ohne JSONATA machst, dann musst Du auch aus dem ganzen ein Objekt machen.
Aus diesem Objekt weist Du einer neuen Liste das Attribut data zu.
Aus dieser Liste ermittelst Du die Anzahl Elemente
Dann nimmst Du aus dieser Liste eine Teilliste vom 2. bis zur Anzahl Elemente.
Dann wandelst Du das wieder in einen String und setzt "{'data':" + String + "}" dahinter. Dann hast Du in etwa das was wir in JSONATA gemacht haben.Ansonsten muss man es halt lernen.
https://try.jsonata.org/R0PG0QFimfangen wir von Anfang an
mit dem $ beziehst Du Dich auf das Ausgangobjekt. Also den Inhalt der Variable objekt.
-
@mickym
noch eine Frage dazu: Was muss ich machen, wenn z.B. aus irgendeinem Grund das Script nicht gelaufen ist und dann z.B. nicht nur der Eintrag 0 sondern auch der nächste z.b. entfernt werden muss. Geht das mit einer Schleife oder so?@manfredhi Ja kannst Du machen - mit jedem Durchlauf wird das 1. Element entfernt. Oder Du kannst direkt mehrere Objekte entfernen in dem Du die Bedingung des Filters änderst.
Mit $i>1 wird das 0. und das 1. Element entfernt - in JS oder JSONATA beginnt man immer mit 0 zu zählen.
-
@manfredhi Na Du kannst es auch ohne JSONATA machen - wird halt nur umständlicher.
Wenn du es ohne JSONATA machst, dann musst Du auch aus dem ganzen ein Objekt machen.
Aus diesem Objekt weist Du einer neuen Liste das Attribut data zu.
Aus dieser Liste ermittelst Du die Anzahl Elemente
Dann nimmst Du aus dieser Liste eine Teilliste vom 2. bis zur Anzahl Elemente.
Dann wandelst Du das wieder in einen String und setzt "{'data':" + String + "}" dahinter. Dann hast Du in etwa das was wir in JSONATA gemacht haben.Ansonsten muss man es halt lernen.
https://try.jsonata.org/R0PG0QFimfangen wir von Anfang an
mit dem $ beziehst Du Dich auf das Ausgangobjekt. Also den Inhalt der Variable objekt.
@mickym sagte in Ersten Eintrag aus JSON entfernen:
@manfredhi Na Du kannst es auch ohne JSONATA machen - wird halt nur umständlicher.
Wenn du es ohne JSONATA machst, dann musst Du auch aus dem ganzen ein Objekt machen.
Aus diesem Objekt weist Du einer neuen Liste das Attribut data zu.
Aus dieser Liste ermittelst Du die Anzahl Elemente
Dann nimmst Du aus dieser Liste eine Teilliste vom 2. bis zur Anzahl Elemente.
Dann wandelst Du das wieder in einen String und setzt "{'data':" + String + "}" dahinter. Dann hast Du in etwa das was wir in JSONATA gemacht haben.Ansonsten muss man es halt lernen.
https://try.jsonata.org/R0PG0QFimfangen wir von Anfang an
mit dem $ beziehst Du Dich auf das Ausgangobjekt. Also den Inhalt der Variable objekt.
Weiter $ beziehst Du Dich also auf das Ausgangsobjekt:

mit $.data selektierst Du nun das Array das Dich interessiert:

mit #$i setzt Du eine Variable, das Dir den Index zu jedem Element enthält

Nachdem wir nun eine Variable $i haben - können wir die Elemente herausfiltern, die uns interessieren. Also alle deren Index >0 sind.
Einen Filter definiert man einfach in eckigen Klammern:


Nun haben wir also das erste Element bereits entfernt. Das Ergebnis wollen wir aber wieder, wie das Ausgangsobjekt in einem Objekt mit der Eigenschaft "data" habe. Also brauchen wir das nur drum rum zu schreiben bei JSONATA und das wars schon.

Damit wurde die ganze Magie schon erklärt.
Wie gesagt, wie es ohne JSONATA gehen kann, habe ich hier kurz angerissen: https://forum.iobroker.net/post/1102736
Solange es aber bei den Puzzleteilchen kein Teil gibt mit dem man Objekte erzeugen kann, ist das hoffnungslos umständlich.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden