Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Frage zu Jsonata

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.2k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    949

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Frage zu Jsonata

Geplant Angeheftet Gesperrt Verschoben JavaScript
5 Beiträge 2 Kommentatoren 461 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    ticaki
    schrieb am zuletzt editiert von
    #1

    Hallo,

    bin neu mit Jsonata unterwegs und frage mich ob ich folgende Funktion dort abbilden kann:

    Ziel des ganzen ist es einen Definition zu schreiben, die mir die benötigten Daten aus dem Json fischt. sowas z.B. (ungetestet)

    const formatedKeys: { [key: string]: customFormatedKeysDef } = {
        dwdService: {
            starttime: '$fromMillis(properties.ONSET,"[H#1]:[M01]")',
            startdate: '$fromMillis(properties.ONSET,"[D01].[M01]")',
            endtime: '$fromMillis(properties.EXPIRES,"[H#1]:[M01]")',
            enddate: '$fromMillis(properties.EXPIRES,"[D01].[M01]")',
            dayofweek: '$fromMillis(properties.ONSET,"[F]")',
            headline: 'properties.HEADLINE',
            description: 'properties.DESCRIPTION',
            weathertext: '',
            ceiling: 'properties.CEILING * 0.3048', // max höhe
            altitude: 'properties.ALTITUDE * 0.3048', // min höhe
            warnlevelname: 'properties.SEVERITY',
            warnlevelnumber: '',
            warnlevelcolor: '', // RGB im Hexformat
            warntypename: 'properties.EC_GROUP',
            location: 'properties.AREADESC',
        },
    };
    

    gekürztes Beispiel Json

            {
                "properties": {
                    "SEVERITY": "Moderate"
                }
            }
    

    Darauf würde ich gerne diese Funktion abbilden:

        function getCapLevel(str) {
            const offset = 1;
            return [
                `minor`,
                `moderate`,
                `severe`,
                `extreme`
            ].indexOf(str.toLowerCase()) + offset;
        }
    

    geht das? Wenn ja, wäre ein Link nett. :)

    Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

    Spenden

    OliverIOO 1 Antwort Letzte Antwort
    0
    • T ticaki

      Hallo,

      bin neu mit Jsonata unterwegs und frage mich ob ich folgende Funktion dort abbilden kann:

      Ziel des ganzen ist es einen Definition zu schreiben, die mir die benötigten Daten aus dem Json fischt. sowas z.B. (ungetestet)

      const formatedKeys: { [key: string]: customFormatedKeysDef } = {
          dwdService: {
              starttime: '$fromMillis(properties.ONSET,"[H#1]:[M01]")',
              startdate: '$fromMillis(properties.ONSET,"[D01].[M01]")',
              endtime: '$fromMillis(properties.EXPIRES,"[H#1]:[M01]")',
              enddate: '$fromMillis(properties.EXPIRES,"[D01].[M01]")',
              dayofweek: '$fromMillis(properties.ONSET,"[F]")',
              headline: 'properties.HEADLINE',
              description: 'properties.DESCRIPTION',
              weathertext: '',
              ceiling: 'properties.CEILING * 0.3048', // max höhe
              altitude: 'properties.ALTITUDE * 0.3048', // min höhe
              warnlevelname: 'properties.SEVERITY',
              warnlevelnumber: '',
              warnlevelcolor: '', // RGB im Hexformat
              warntypename: 'properties.EC_GROUP',
              location: 'properties.AREADESC',
          },
      };
      

      gekürztes Beispiel Json

              {
                  "properties": {
                      "SEVERITY": "Moderate"
                  }
              }
      

      Darauf würde ich gerne diese Funktion abbilden:

          function getCapLevel(str) {
              const offset = 1;
              return [
                  `minor`,
                  `moderate`,
                  `severe`,
                  `extreme`
              ].indexOf(str.toLowerCase()) + offset;
          }
      

      geht das? Wenn ja, wäre ein Link nett. :)

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      @ticaki

      ganz komplett hab ich es nicht verstanden.

      also du hast ein ursprungs json.
      daraus willst du ein anderes json bauen, was wahrscheinlich einfacher in der struktur ist, wie das ursprungs json.

      dann willst du das neue json auswerten

      ist das richtig?

      auf basis der aktuellen infos und meiner interpretation:
      das ist kein problem. ob tatsächlich jsonata notwendig ist, kann ich nicht beurteilen. auswerten kannst du mit normalen javascript auch schon auf basis des original javascripts

      jsonata hat eine eigene dokumentation mit beispielen
      https://jsonata.org/

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      T 1 Antwort Letzte Antwort
      0
      • OliverIOO OliverIO

        @ticaki

        ganz komplett hab ich es nicht verstanden.

        also du hast ein ursprungs json.
        daraus willst du ein anderes json bauen, was wahrscheinlich einfacher in der struktur ist, wie das ursprungs json.

        dann willst du das neue json auswerten

        ist das richtig?

        auf basis der aktuellen infos und meiner interpretation:
        das ist kein problem. ob tatsächlich jsonata notwendig ist, kann ich nicht beurteilen. auswerten kannst du mit normalen javascript auch schon auf basis des original javascripts

        jsonata hat eine eigene dokumentation mit beispielen
        https://jsonata.org/

        T Offline
        T Offline
        ticaki
        schrieb am zuletzt editiert von ticaki
        #3

        @oliverio
        Die Doku hab ich teilweise gelesen, aber zu meinem Problem keine Antwort gefunden. Lese ich sie am WE mal komplett.

        Natürlich braucht man für die Lösung des Problems kein Jsonata. Wäre nur schön, weil ich fast alles was ich an dieser Stelle brauche damit machen kann und es wirklich einfach zu erweitern wäre.

        EDIT:

        Ne du hast was falsch verstanden(glaube ich), ich habe ein UrsprungsJson, auf das wende ich die einzelnen Keys vom formatedKeys Json mit Jsonata an, und dann erhalte ich ein Json mit formatierten Daten für die Weiterverarbeitung.

        Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

        Spenden

        OliverIOO 1 Antwort Letzte Antwort
        0
        • T ticaki

          @oliverio
          Die Doku hab ich teilweise gelesen, aber zu meinem Problem keine Antwort gefunden. Lese ich sie am WE mal komplett.

          Natürlich braucht man für die Lösung des Problems kein Jsonata. Wäre nur schön, weil ich fast alles was ich an dieser Stelle brauche damit machen kann und es wirklich einfach zu erweitern wäre.

          EDIT:

          Ne du hast was falsch verstanden(glaube ich), ich habe ein UrsprungsJson, auf das wende ich die einzelnen Keys vom formatedKeys Json mit Jsonata an, und dann erhalte ich ein Json mit formatierten Daten für die Weiterverarbeitung.

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von OliverIO
          #4

          @ticaki sagte in Frage zu Jsonata:

          Ne du hast was falsch verstanden(glaube ich), ich habe ein UrsprungsJson, auf das wende ich die einzelnen Keys vom formatedKeys Json mit Jsonata an, und dann erhalte ich ein Json mit formatierten Daten für die Weiterverarbeitung

          genau das habe ich geschrieben

          damit du dich mit dem programmieren nicht rumärgern muss, kannst du am anfang die einzelnen ausdrücke zusammen mit deiner json ausprobieren
          https://try.jsonata.org/

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          T 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @ticaki sagte in Frage zu Jsonata:

            Ne du hast was falsch verstanden(glaube ich), ich habe ein UrsprungsJson, auf das wende ich die einzelnen Keys vom formatedKeys Json mit Jsonata an, und dann erhalte ich ein Json mit formatierten Daten für die Weiterverarbeitung

            genau das habe ich geschrieben

            damit du dich mit dem programmieren nicht rumärgern muss, kannst du am anfang die einzelnen ausdrücke zusammen mit deiner json ausprobieren
            https://try.jsonata.org/

            T Offline
            T Offline
            ticaki
            schrieb am zuletzt editiert von
            #5

            @oliverio
            Danke - keine Ahnung wieso ich das nicht schon im ersten Lesedurchlauf verstanden habe. War wohl zu fixiert auf Arrays.

            $lookup({'minor':1, 'moderate':2, 'severe':3, 'extreme':4},$lowercase(properties.SEVERITY))
            

            Weather-Warnings Espresense NSPanel-Lovelace-ui Tagesschau

            Spenden

            1 Antwort Letzte Antwort
            0
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            667

            Online

            32.6k

            Benutzer

            82.2k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe