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. [gelöst] JSON nach kleinstem Wert parsen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

[gelöst] JSON nach kleinstem Wert parsen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
7 Beiträge 2 Kommentatoren 645 Aufrufe
  • Ä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
    tempestas
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    mal wieder scheitere ich.

    Hintergrund:

    Picnic hat hier http://forum.iobroker.net/viewtopic.php … 282#p92282 aus einem meiner Skripte etwas mehr gezaubert und erzeugt ein JSON, in dem eine schöne Grafik, die Tage bis zur Abholung usw für den Müll angezeigt werden.

    Nun möchte ich aber für meine neuen Views das ganze auf der Main View so haben, dass er mir nur noch die Tage bis zum nächsten Müll (egal welche Art) anzeigt. Ich bekomme es einfach nicht hin, aus dem JSON das Minimum der Tage rauszufiltern, wobei man auch noch berücksichtigen müsste, dass es bei 0 Tagen "Heute" heißt. Das könnte man aber auch durch Sichtbarkeiten regeln.

    In dem JSON steht das hier (die Dinge für die Grafiken habe ich hier mal entfernt zwecks Lesbarkeit. Wie bekomme ich da nun eben die 4 als Minimum extrahiert?

    [{"Müllart":" Restabfall","Tage":"25"}, {"Müllart":" Papiertonne","Tage":"27"},{"Müllart":" Bioabfall","Tage":"4"},{"Müllart":" Gelber Sack","Tage":"4"}]
    
    

    Danke an alle Könner

    <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Etwa so:

      `var obj = JSON.parse(json);
      var min = 99;
      for(var i = 0; i < obj.length; i++) {
          var x = parseInt(obj[i].Tage);
          if(x < min) min = x; 
      }` [/i]
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • T Offline
        T Offline
        tempestas
        schrieb am zuletzt editiert von
        #3

        Hallo paul,

        vielen Dank (ich hatte ein wenig auf deine Expertise gehofft :)

        ich habs jetzt so probiert

        `var myjson ="javascript.0.muell.json"/*javascript.0.muell.json*/;
        var json= JSON.stringify(myjson);
        
        var obj = JSON.parse(json);
        var min = 99;
        for(var i = 0; i < obj.length; i++) {
            var x = parseInt(obj[i].Tage);
            if(x < min) min = x;
        
        }
        
        log("Minimum ist "+x);` 
        
        Gibt mir "NaN" aus?
        
        Ich durchsteige JSONs noch nicht wirklich
        
        Edit: wenn ich die von mir hier dargestellt Beispiel-JSON nehme, funktioniert es wunderbar. Was mache ich mit dem eigentlichen State dann falsch?
        
        Edit 2: müsste wohl 
        
        `~~[code]~~var json= JSON.stringify(getState(myjson).val);[/code]` heißen? Fehler bleibt aber. Dann müsen die Grafiken wohl Ärger machen
        
        Edit 3:
        
        habe mal die Grafik entfernt, keine Änderung. Verstehe ich nicht.[/i]
        

        <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          Wenn der Datenpunkt mit der ID javascript.0.muell.json den JSON-String enthält, dann so:

          `const idjson ="javascript.0.muell.json"/*javascript.0.muell.json*/;
          
          var json = getState(idjson).val;
          var obj = JSON.parse(json);
          var min = 99;
          for(var i = 0; i < obj.length; i++) {
              var x = parseInt(obj[i].Tage);
              if(x < min) min = x;
          
          }
          
          log("Minimum ist " + min);`[/i]
          

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          1 Antwort Letzte Antwort
          0
          • paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von
            #5

            Habe den ersten Beitrag nochmal gelesen mit "Heute" anstelle "0". Dann muss das Skript erweitert werden

            `const idjson ="javascript.0.muell.json"/*javascript.0.muell.json*/;
            
            var json = getState(idjson).val;
            var obj = JSON.parse(json);
            var min = 99;
            for(var i = 0; i < obj.length; i++) {
                var x = obj[i].Tage;
                if(x == 'Heute') x = 0;
                else x = parseInt(x);
                if(x < min) min = x;
            }
            
            log("Minimum ist " + min);` [/i]
            

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              tempestas
              schrieb am zuletzt editiert von
              #6

              Paul:

              DANKE! Läuft.

              Wann ich "stringify" nutzen muss und wann nicht, werde ich wohl nie verstehen :)

              <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

              1 Antwort Letzte Antwort
              0
              • paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @tempestas:

                Wann ich "stringify" nutzen muss und wann nicht, werde ich wohl nie verstehen `
                Ist doch nicht so schwierig: Ein Objekt (Array) in einen JSON-String wandeln mit JSON.stringify(obj); umgekehrt einen JSON-String in ein Objekt (Array) wandeln mit JSON.parse(json).

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                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

                646

                Online

                32.4k

                Benutzer

                81.5k

                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