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. Blockly
  5. [gelöst] JSON nach Attribute sortieren

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] JSON nach Attribute sortieren

Geplant Angeheftet Gesperrt Verschoben Blockly
11 Beiträge 4 Kommentatoren 571 Aufrufe 4 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.
  • DJMarc75D Offline
    DJMarc75D Offline
    DJMarc75
    schrieb am zuletzt editiert von DJMarc75
    #1

    Nabend,

    morgiges Projekt soll sein ein JSON nach Attribute zu sortieren.
    Das JSON hat 2 Attribute und sieht so aus:

    [
      {
        "text": "Maschine1",
        "value": "63983"
      },
      {
        "text": "Knotenpunkt4",
        "value": "63364"
      }
    ]
    

    Der Inhalt sollte ja egal sein und ich hab das Teil mal gekürtzt weil es mehr als 30 {Werte} sind:

    Ich würde gerne dieses JSON nach dem Attribute "text" aufsteigend sortieren.

    Kann man das per Blockly lösen oder bedarf es da einer JS-Funktion ?

    Lehrling seit 1975 !!!
    Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
    https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

    F OliverIOO 2 Antworten Letzte Antwort
    0
    • DJMarc75D DJMarc75

      Nabend,

      morgiges Projekt soll sein ein JSON nach Attribute zu sortieren.
      Das JSON hat 2 Attribute und sieht so aus:

      [
        {
          "text": "Maschine1",
          "value": "63983"
        },
        {
          "text": "Knotenpunkt4",
          "value": "63364"
        }
      ]
      

      Der Inhalt sollte ja egal sein und ich hab das Teil mal gekürtzt weil es mehr als 30 {Werte} sind:

      Ich würde gerne dieses JSON nach dem Attribute "text" aufsteigend sortieren.

      Kann man das per Blockly lösen oder bedarf es da einer JS-Funktion ?

      F Offline
      F Offline
      fastfoot
      schrieb am zuletzt editiert von
      #2

      @djmarc75 jsonata.PNG

      iobroker läuft unter Docker auf QNAP TS-451+
      SkriptRecovery: https://forum.iobroker.net/post/930558

      1 Antwort Letzte Antwort
      1
      • mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von mickym
        #3

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        1 Antwort Letzte Antwort
        0
        • DJMarc75D DJMarc75

          Nabend,

          morgiges Projekt soll sein ein JSON nach Attribute zu sortieren.
          Das JSON hat 2 Attribute und sieht so aus:

          [
            {
              "text": "Maschine1",
              "value": "63983"
            },
            {
              "text": "Knotenpunkt4",
              "value": "63364"
            }
          ]
          

          Der Inhalt sollte ja egal sein und ich hab das Teil mal gekürtzt weil es mehr als 30 {Werte} sind:

          Ich würde gerne dieses JSON nach dem Attribute "text" aufsteigend sortieren.

          Kann man das per Blockly lösen oder bedarf es da einer JS-Funktion ?

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

          @djmarc75

          Eingangs eine kleine Korrektur
          Json ist nur die textuelle Darstellung eines JavaScript Objektes.
          Du hast als Beispiel ein Array of objects.

          Leider ohne blockly, aber evtl kann jemand daraus ein blockly machen.
          An die Funktion wird das Array übergeben und als Schlüssel der Name des Attributs nachdem sortiert werden soll.

          
          function sortByKey(array, key) {
              return array.sort(function(a, b) {
                  var x = a[key]; var y = b[key];
                  return ((x < y) ? -1 : ((x > y) ? 1 : 0));
              });
          }
          
          

          Die Funktion müsste mit allen primitiven Datentypen zurechtkommen.
          Bei strings wird nur alphanumerisch und nicht lexikalisch sortiert

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

          mickymM 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            @djmarc75

            Eingangs eine kleine Korrektur
            Json ist nur die textuelle Darstellung eines JavaScript Objektes.
            Du hast als Beispiel ein Array of objects.

            Leider ohne blockly, aber evtl kann jemand daraus ein blockly machen.
            An die Funktion wird das Array übergeben und als Schlüssel der Name des Attributs nachdem sortiert werden soll.

            
            function sortByKey(array, key) {
                return array.sort(function(a, b) {
                    var x = a[key]; var y = b[key];
                    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
                });
            }
            
            

            Die Funktion müsste mit allen primitiven Datentypen zurechtkommen.
            Bei strings wird nur alphanumerisch und nicht lexikalisch sortiert

            mickymM Online
            mickymM Online
            mickym
            Most Active
            schrieb am zuletzt editiert von mickym
            #5

            @oliverio

            Unten ist doch mit JSONATA eine super elegante Lösung gezeigt?

            Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

            OliverIOO 1 Antwort Letzte Antwort
            0
            • mickymM mickym

              @oliverio

              Unten ist doch mit JSONATA eine super elegante Lösung gezeigt?

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

              @mickym
              Ja mit einer zusätzlichen Bibliothek.
              Ich bevorzuge meist erstmal cleane Lösungen.
              Erst wenn es vom Aufwand keinen Sinn mehr macht, dann hol ich mir eine Bibliothek. Bei npm gibt es Bibliotheken mit 10 Zeilen. Das macht meist kein Sinn.
              Er kann ja selbst wählen.
              Ich hab dafür kein blockly

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

              mickymM 1 Antwort Letzte Antwort
              0
              • OliverIOO OliverIO

                @mickym
                Ja mit einer zusätzlichen Bibliothek.
                Ich bevorzuge meist erstmal cleane Lösungen.
                Erst wenn es vom Aufwand keinen Sinn mehr macht, dann hol ich mir eine Bibliothek. Bei npm gibt es Bibliotheken mit 10 Zeilen. Das macht meist kein Sinn.
                Er kann ja selbst wählen.
                Ich hab dafür kein blockly

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von
                #7

                @oliverio Ja im Prinzip geb ich Dir Recht, aber JSONATA ist Bestandteil von Blockly. Dafür muss man nichts installieren.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                OliverIOO 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @oliverio Ja im Prinzip geb ich Dir Recht, aber JSONATA ist Bestandteil von Blockly. Dafür muss man nichts installieren.

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

                  @mickym
                  Ah ist mir entgangen.
                  Ist das neu?

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

                  mickymM 1 Antwort Letzte Antwort
                  0
                  • OliverIOO OliverIO

                    @mickym
                    Ah ist mir entgangen.
                    Ist das neu?

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #9

                    @oliverio sagte in JSON nach Attribute sortieren:

                    @mickym
                    Ah ist mir entgangen.
                    Ist das neu?

                    seit Version 4.4.3 des JS Adapters - also seit 3.3.2020 ;)

                    abf0dafe-0729-4cda-86cd-c4ad8ce7b425-image.png

                    Habs gefunden:
                    81956152-e0b9-4c4e-8d23-e6bfb2d21182-image.png

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    1 Antwort Letzte Antwort
                    0
                    • mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #10

                      Hab gerade mal geschaut, was das Blockly für einen JS Code erzeugt:

                      fd1f1306-3468-4873-a180-c91c3f8fa303-image.png

                      Im Prinzip scheint

                      jsonataExpression(Array,'$^(text)')
                      

                      das zu langen. Der 1. Parameter ist das Objekt bzw. Array und der 2. Parameter der JSONATA Ausdruck.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      1 Antwort Letzte Antwort
                      0
                      • DJMarc75D Offline
                        DJMarc75D Offline
                        DJMarc75
                        schrieb am zuletzt editiert von DJMarc75
                        #11

                        Guten Morgen und Merci für die super Unterstützung.

                        Folgend gelöst:

                        Screenshot 2022-11-22 044337.png

                        Kurz und knapp quasi :+1:

                        Lehrling seit 1975 !!!
                        Beitrag geholfen ? dann gerne ein upvote rechts unten im Beitrag klicken ;)
                        https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge

                        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

                        819

                        Online

                        32.6k

                        Benutzer

                        82.1k

                        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