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

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. (gelöst) Umwandlung: String-->Array-->String

NEWS

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

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

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

(gelöst) Umwandlung: String-->Array-->String

Geplant Angeheftet Gesperrt Verschoben JavaScript
8 Beiträge 3 Kommentatoren 832 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.
  • R Offline
    R Offline
    radioman
    schrieb am zuletzt editiert von radioman
    #1

    Hallo,

    ich versuche jetzt schon eine Weile ein mehrdimensionales JSON Array mit .sort() zu sortieren (ich will dabei variabel nach verschiedenen Feldern innerhalb des Arrays sortieren können).

    Laut allgemeiner Javascript Doku
    https://www.mediaevent.de/javascript/sort.html
    https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
    sollte das eigentlich ganz einfach sein...
    Allerdings gelingt es mir nicht mit ioBrokers JavaScript.

    Enthält das JavaScript von ioBroker eventuell gar nicht alle Befehle? In der Doku
    https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md
    finde ich nämlich gar kein "sort".

    Nicht einmal das testweise Nachstellen dieser Lösung
    https://stackoverflow.com/a/26762192
    (die meinen zu sortierenden Daten sehr nahe kommt) gelingt mir unter ioBrokers JavaScript.

    In der Forums Suchfunktion finde ich zwar Fragen von Foristen nach Sortiermöglichkeiten von Arrays, aber irgendwie keine Antworten/Lösungen!?

    Geht .sort() bei ioBroker gar nicht?

    VG Radioman

    paul53P 1 Antwort Letzte Antwort
    0
    • R radioman

      Hallo,

      ich versuche jetzt schon eine Weile ein mehrdimensionales JSON Array mit .sort() zu sortieren (ich will dabei variabel nach verschiedenen Feldern innerhalb des Arrays sortieren können).

      Laut allgemeiner Javascript Doku
      https://www.mediaevent.de/javascript/sort.html
      https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
      sollte das eigentlich ganz einfach sein...
      Allerdings gelingt es mir nicht mit ioBrokers JavaScript.

      Enthält das JavaScript von ioBroker eventuell gar nicht alle Befehle? In der Doku
      https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md
      finde ich nämlich gar kein "sort".

      Nicht einmal das testweise Nachstellen dieser Lösung
      https://stackoverflow.com/a/26762192
      (die meinen zu sortierenden Daten sehr nahe kommt) gelingt mir unter ioBrokers JavaScript.

      In der Forums Suchfunktion finde ich zwar Fragen von Foristen nach Sortiermöglichkeiten von Arrays, aber irgendwie keine Antworten/Lösungen!?

      Geht .sort() bei ioBroker gar nicht?

      VG Radioman

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von paul53
      #2

      @radioman sagte:

      finde ich nämlich gar kein "sort".

      Dort sind auch nur die zusätzlichen, ioBroker spezifischen Funktionen beschrieben. array.sort() funktioniert in allen Javascript-Umgebungen, also auch in ioBroker. Beispiel

      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

      R 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @radioman sagte:

        finde ich nämlich gar kein "sort".

        Dort sind auch nur die zusätzlichen, ioBroker spezifischen Funktionen beschrieben. array.sort() funktioniert in allen Javascript-Umgebungen, also auch in ioBroker. Beispiel

        R Offline
        R Offline
        radioman
        schrieb am zuletzt editiert von radioman
        #3

        Hallo paul53,
        das hatte ich sogar sehr früh gefunden und sofort probiert. Aber irgendwo liegt bei mir der Hund begraben - es klappt nicht und ich finde diesen Hund nicht. Kannst Du bitte mal schauen, ob Du "ihn" findest:

        StringValue = '[';
        .
        .
        .
        StringValue = StringValue+',{"S1":'+'"'+SpalteC+'","S2":"'+SpalteA+'","S3":"'+SpalteB+'","S4":"'+SpalteD+'","S5":"'+SpalteE+'","S6":"'+SpalteF+'","S7":"'+SpalteG+'"}';
        StringValue = StringValue+']';
        StringValue = StringValue.replace(/ /g, ""); //testweise zum besseren lesen des Logs
        console.log(StringValue);
        var test = JSON.parse(StringValue).data;
        console.log("Inhalt von Test: " + test);
        

        ergibt:

        Screenshot2.JPG

        Hier der String von "StringValue" nochmal per copy&paste eingefügt:
        [{"S1":"00:16","S2":"S1","S3":"Meißen","S4":"0","S5":"24","S6":"2","S7":"S-Bahn"},{"S1":"00:19","S2":"RE","S3":"DresdenHbf","S4":"0","S5":"27","S6":"1","S7":"Zug"},{"S1":"00:21","S2":"475","S3":"Friedewald","S4":"0","S5":"29","S6":"0","S7":"Regionalbus"},{"S1":"00:34","S2":"475","S3":"RadebeulKötzsch","S4":"0","S5":"42","S6":"0","S7":"Regionalbus"},{"S1":"00:40","S2":"S1","S3":"DresdenHbf","S4":"0","S5":"48","S6":"0","S7":"S-Bahn"},{"S1":"04:31","S2":"RE","S3":"LeipzigHbf","S4":"0","S5":"279","S6":"0","S7":"Zug"},{"S1":"04:40","S2":"S1","S3":"BadSchandau","S4":"0","S5":"288","S6":"0","S7":"S-Bahn"},{"S1":"04:46","S2":"S1","S3":"Meißen","S4":"0","S5":"294","S6":"0","S7":"S-Bahn"},{"S1":"00:04","S2":"4","S3":"BtfTrachenberge","S4":"0","S5":"12","S6":"1","S7":"Straßenbahn"},{"S1":"00:05","S2":"4","S3":"Weinböhla","S4":"0","S5":"13","S6":"2","S7":"Straßenbahn"},{"S1":"00:19","S2":"4","S3":"Laubegast","S4":"0","S5":"27","S6":"1","S7":"Straßenbahn"},{"S1":"00:35","S2":"4","S3":"RadebeulWest","S4":"0","S5":"43","S6":"2","S7":"Straßenbahn"},{"S1":"01:04","S2":"4","S3":"BtfTrachenberge","S4":"0","S5":"72","S6":"1","S7":"Straßenbahn"},{"S1":"01:05","S2":"4","S3":"Weinböhla","S4":"0","S5":"73","S6":"2","S7":"Straßenbahn"},{"S1":"01:19","S2":"4","S3":"Laubegast","S4":"0","S5":"87","S6":"1","S7":"Straßenbahn"},{"S1":"02:05","S2":"4","S3":"Weinböhla","S4":"0","S5":"133","S6":"2","S7":"Straßenbahn"},{"S1":"02:19","S2":"4","S3":"Laubegast","S4":"0","S5":"147","S6":"1","S7":"Straßenbahn"}]

        1 Antwort Letzte Antwort
        0
        • OliverIOO Offline
          OliverIOO Offline
          OliverIO
          schrieb am zuletzt editiert von
          #4

          Also von dem sort kann ich in deinem Beispiel Code leider nichts finden.
          Der Fehler zu deinem Beispiel liegt in der Zeile 85
          JSON.parse versucht die Variable zu interpretieren und ein Objekt zu bauen. Danach wird versucht, diesem Objekt das property data zu lesen und der Variable Test zuzuweisen.
          In deinen Text ist aber nix mit data enthalten.
          Daher korrektes Ergebnis undefined
          Nimm das .data am Ende weg, dann müsste es funktionieren, sofern parse keinen weiteren Fehler beim interpretieren wirft.

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

          R 1 Antwort Letzte Antwort
          0
          • OliverIOO OliverIO

            Also von dem sort kann ich in deinem Beispiel Code leider nichts finden.
            Der Fehler zu deinem Beispiel liegt in der Zeile 85
            JSON.parse versucht die Variable zu interpretieren und ein Objekt zu bauen. Danach wird versucht, diesem Objekt das property data zu lesen und der Variable Test zuzuweisen.
            In deinen Text ist aber nix mit data enthalten.
            Daher korrektes Ergebnis undefined
            Nimm das .data am Ende weg, dann müsste es funktionieren, sofern parse keinen weiteren Fehler beim interpretieren wirft.

            R Offline
            R Offline
            radioman
            schrieb am zuletzt editiert von
            #5

            Hallo Oliver, stimmt - hatte ich vergessen zu schreiben - habe gestern erst/auch bemerkt, dass ich schon einen Schritt vorm sort() hängen bleibe.
            Das mit dem data weglassen hatte ich auch schon probiert, aber da klemmt es anders:

            Screenshot3.JPG

            Woran könnte das liegen?

            1 Antwort Letzte Antwort
            0
            • OliverIOO Offline
              OliverIOO Offline
              OliverIO
              schrieb am zuletzt editiert von
              #6

              das sieht gut aus. Kein Fehler mehr.
              Weißt du eigentlich was du da für einen String zusammengebaut hast und wie man auf die Anteile zugreifst? ich denke nicht so.
              Kopiere mal deinen String für copy+paste weiter oben inklusive der eckigen Klammern []
              Öffne dann den Browser Chrome
              Mach in im Inhaltebereich irgendwo Rechtsklick und wähle "Untersuchen", so das sich die Developer Tools öffnen.
              dort wählst du die Console und kopierst den String einfach hinein.
              Als Ergebnis siehst du eine Zeile mit einem kleinen Dreieck auf das du klickst
              8966376c-2cee-447e-a121-0d521d4ca0a7-image.png
              Dann kannst du den Aufbau des Objekts untersuchen.
              Du hast da nämlich zuallererst ein Array [] in dem sich mehrere Objekte {} befinden, welche wiederum verschiedene Eigenschaften/Properties enthalten.
              Zugriff z.B. StringValue[3].S3 ergibt "RadebeulKötzsch"

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

              1 Antwort Letzte Antwort
              0
              • OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                damit du schon mal weiterlesen kannst, wie das mit dem sortieren funktioniert,
                lese die folgende Seite:
                https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
                Am besten alles, aber insbesondere den Abschnitt:

                • Objekte können anhand der Werte eines ihrer Eigenschaften sortiert werden.

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

                R 1 Antwort Letzte Antwort
                0
                • OliverIOO OliverIO

                  damit du schon mal weiterlesen kannst, wie das mit dem sortieren funktioniert,
                  lese die folgende Seite:
                  https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
                  Am besten alles, aber insbesondere den Abschnitt:

                  • Objekte können anhand der Werte eines ihrer Eigenschaften sortiert werden.
                  R Offline
                  R Offline
                  radioman
                  schrieb am zuletzt editiert von radioman
                  #8

                  Oh, man - war ich blind. Ich ahnte zwar, dass ich den String richtig zusammengebaut hatte (deshalb war ich ja auch der Meinung, dass es an etwas anderem liegen müsste), nur habe ich nicht dran gedacht, dass ich das Array hinterher wieder mit JSON.stringify zurückwandeln muss, um ihn einem Datenpunkt zuweisen und dann endlich in VIS über eine Json-Tabelle anzeigen zu können. Deshalb habe ich (bei einem kompletten Array unsinnigerweise) versucht, über console.log den Fehler zu finden.
                  Dank Eurer Hilfe, hab ich es jetzt hinbekommen:

                  StringValue = StringValue+',StringValue = '[';
                  .
                  .
                  .{"S1":'+'"'+SpalteC+'","S2":"'+SpalteA+'","S3":"'+SpalteB+'","S4":"'+SpalteD+'","S5":"'+SpalteE+'","S6":"'+SpalteF+'","S7":"'+SpalteG+'"}';
                  StringValue = StringValue+']';
                  var test = JSON.parse(StringValue);
                  test.sort(function(a, b) {
                      if(a.S5 < b.S5) return -1;
                      if(a.S5 > b.S5) return 1;
                      return 0;
                  });
                  setState('javascript.2.TabelleTest', JSON.stringify(test));
                  }
                  

                  Vielen Dank!

                  ... ich werde den Threat-Titel gleich noch anpassen, damit die Forums-Suchfunktion nicht falsch anschlägt.

                  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

                  287

                  Online

                  32.4k

                  Benutzer

                  81.4k

                  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