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. JSON.stringify zerlegen

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.1k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.4k

JSON.stringify zerlegen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
11 Beiträge 3 Kommentatoren 2.6k 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.
  • Lenny.CBL Offline
    Lenny.CBL Offline
    Lenny.CB
    Most Active
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    komme grad nicht weiter und bräuchte mal einen Tipp.

    ich mache einen "request.get" und bekomme mit JSON.stringify(body) folgendes Ergebnis.

    body: {"000147619644":{"ident":{"type":{"key_localized":"Devicetype","value_raw":1,"value_localized":"Washing Machine"},"deviceName":"","deviceIdentLabel":{"fabNumber":"000147619644","fabIndex":"11","techType":"WMV963","matNumber":"10499100","swids":["3814","25105","25117","20163","3627","20242","25042","25043","25026","2971","20166"]},"xkmIdentLabel":{"techType":"XKM3100W","releaseVersion":"02.45"}},"state":{"status":{"value_raw":1,"value_localized":"Off","key_localized":"State"},"programType":{"value_raw":0,"value_localized":"","key_localized":"Programme"},"programPhase":{"value_raw":256,"value_localized":"","key_localized":"Phase"},"remainingTime":[0,0],"startTime":[0,0],"targetTemperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"temperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"signalInfo":false,"signalFailure":false,"signalDoor":false,"remoteEnable":{"fullRemoteControl":true,"smartGrid":true},"light":0,"elapsedTime":[0,0],"spinningSpeed":0,"dryingStep":{"value_raw":null,"value_localized":"","key_localized":"Drying level"},"ventilationStep":{"value_raw":null,"value_localized":"","key_localized":"Power Level"}}}}
    

    Hier will ich nun nach einzelnen Schlüsselwörtern suchen und die Keys dazu speichern.

    Komme hier grad nicht mehr klar.

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

      Normalerweise wird in body ein JSON-String geliefert, den man per JSON.parse(body) in ein Objekt wandeln muss.

      Den http://jsonviewer.stack.hu/ kennst Du ?

      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
      1
      • apollon77A Online
        apollon77A Online
        apollon77
        schrieb am zuletzt editiert von
        #3

        Wenn aber das Stringify so aussieht wie oben dann ist das schon ein in ein Objekt geparstes JSON, kann also direkt verwendet werden …

        Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

        • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
        • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
        1 Antwort Letzte Antwort
        0
        • Lenny.CBL Offline
          Lenny.CBL Offline
          Lenny.CB
          Most Active
          schrieb am zuletzt editiert von
          #4

          @paul53:

          Normalerweise wird in body ein JSON-String geliefert, den man per JSON.parse(body) in ein Objekt wandeln muss.

          Den http://jsonviewer.stack.hu/ kennst Du ? ` Das ist nen bissel komisch…

          Das ist son ein "3er-ping-pong"

          1. Code per request.post abfragen. Was ich brauche hole ich mit: JSON.stringify(response.header)

          2. Token per request.post holen.

          Was ich brauche hole ich mit: JSON.parse(body)

          3. Divices holen

          Was ich brauche hole ich mit: JSON.stringify(body)

          Den link schaue ich mir mal an.

          1 Antwort Letzte Antwort
          0
          • Lenny.CBL Offline
            Lenny.CBL Offline
            Lenny.CB
            Most Active
            schrieb am zuletzt editiert von
            #5

            @apollon77:

            Wenn aber das Stringify so aussieht wie oben dann ist das schon ein in ein Objekt geparstes JSON, kann also direkt verwendet werden … ` Und genau da fehlts mir… schon viel gelesen und probiert, nix geklappt.

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

              @Lenny.CB:

              2. Token per request.post holen.

              Was ich brauche hole ich mit: JSON.parse(body)

              3. Divices holen

              Was ich brauche hole ich mit: JSON.stringify(body) `
              Was nun ? Einfach testen mit

              log('Typ body: ' + typeof body);
              

              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
              • Lenny.CBL Offline
                Lenny.CBL Offline
                Lenny.CB
                Most Active
                schrieb am zuletzt editiert von
                #7

                @paul53:

                @Lenny.CB:

                2. Token per request.post holen.

                Was ich brauche hole ich mit: JSON.parse(body)

                3. Divices holen

                Was ich brauche hole ich mit: JSON.stringify(body) `
                Was nun ? Einfach testen mit

                log('Typ body: ' + typeof body);
                ```` `  
                

                genau wie ich geschrieben habe.

                Beim Token (request.post) kommt ein "Typ body Token: string" zurück,

                Beim Device (request.get) kommt ein "Typ body Device: object" zurück. Warum auch immer.

                Mit der Token-Antwort komme ich zurecht. Da hole ich das raus mit:

                let obj = JSON.parse(body);
                access_token = obj.access_token;
                

                Nur wenn halt ein Objekt zurück kommt, komme ich nicht klar. Schaut auch irgendwie "verschachtelt" aus.

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

                  @Lenny.CB:

                  Nur wenn halt ein Objekt zurück kommt, komme ich nicht klar. Schaut auch irgendwie "verschachtelt" aus. `
                  Ist es das Objekt aus dem ersten Beitrag ? Im JSON-Viewer sieht es so aus (ohne "body: "):
                  493_json_lenny.jpg
                  Der Zugriff auf z.B. state.status.value_raw würde so erfolgen:

                  var status_value_raw = obj["000147619644"].state.status.value_raw;
                  

                  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
                  • Lenny.CBL Offline
                    Lenny.CBL Offline
                    Lenny.CB
                    Most Active
                    schrieb am zuletzt editiert von
                    #9

                    @paul53:

                    Ist es das Objekt aus dem ersten Beitrag ? ` ja korrekt
                    @paul53:

                    Der Zugriff auf z.B. state.status.value_raw würde so erfolgen:

                    var status_value_raw = obj["000147619644"].state.status.value_raw;
                    ```` `  
                    

                    dabei bekomme ich folgenden Fehler:

                    javascript.2 TypeError: Cannot read property 'status' of undefined at Request._callback (script.js.Testscripte.Miele_Abfrage:94:57) at Request.self.callback (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:185:22) at emitTwo (events.js:106:13) at Request.emit (events.js:191:7) at Request. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1161:10) at emitOne (events.js:96:13) at Request.emit (events.js:188:7) at IncomingMessage. (/opt/iobroker/node_modules/iobroker.javascript/node_modules/request/request.js:1083:12) at IncomingMessage.g (events.js:292:16) at emitNone (events.js:91:20)
                    Caught by controller[0]: at Request._callback (script.js.Testscripte.Miele_Abfrage:94:57)
                    
                    1 Antwort Letzte Antwort
                    0
                    • paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #10

                      @Lenny.CB:

                      dabei bekomme ich folgenden Fehler: `
                      ??
                      493_objekt_lenny.jpg

                      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
                      • Lenny.CBL Offline
                        Lenny.CBL Offline
                        Lenny.CB
                        Most Active
                        schrieb am zuletzt editiert von
                        #11

                        wenn ich das so aufbaue:var obj = {"000147619644":{"ident":{"type":{"key_localized":"Devicetype","value_raw":1,"value_localized":"Washing Machine"},"deviceName":"","deviceIdentLabel":{"fabNumber":"000147619644","fabIndex":"11","techType":"WMV963","matNumber":"10499100","swids":["3814","25105","25117","20163","3627","20242","25042","25043","25026","2971","20166"]},"xkmIdentLabel":{"techType":"XKM3100W","releaseVersion":"02.45"}},"state":{"status":{"value_raw":1,"value_localized":"Off","key_localized":"State"},"programType":{"value_raw":0,"value_localized":"","key_localized":"Programme"},"programPhase":{"value_raw":256,"value_localized":"","key_localized":"Phase"},"remainingTime":[0,0],"startTime":[0,0],"targetTemperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"temperature":[{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"},{"value_raw":-32768,"value_localized":null,"unit":"Celsius"}],"signalInfo":false,"signalFailure":false,"signalDoor":false,"remoteEnable":{"fullRemoteControl":true,"smartGrid":true},"light":0,"elapsedTime":[0,0],"spinningSpeed":0,"dryingStep":{"value_raw":null,"value_localized":"","key_localized":"Drying level"},"ventilationStep":{"value_raw":null,"value_localized":"","key_localized":"Power Level"}}}}; log(obj["000147619644"].state.status.value_raw);klappte es bei mir auch.````
                        16:07:36.884 [info] javascript.2 script.js.Testscripte.Miele_device_test: 1

                        
                        Habe heut Morgen noch etwas versucht und wieder mal gesehen, dass ich mir selbst ins Knie geschossen habe. Is halt so wenn man nicht wirklich weiß was im kopierten Code passiert (Quasi wie immer :shock: ) Muss hier noch weiter lernen. :ugeek:
                        
                        hier mal der Code:````
                        function Device_Abfrage () {
                                request.get    ({  
                                                url: 'https://api.mcs3.miele.com/v1/devices/',
                                                // json: true,
                                                headers: {'Authorization': 'Bearer xxxxxxxx86816993400b8b44xxxxxxxx'}
                                                },
                                                function (error, response, body) {
                                                log('Device_statusCode: ' + response.statusCode);
                                                log('body: ' + body);
                                                log('Device_error: ' + error);
                                                log('Typ body Device: ' + typeof body);
                                                var obj = JSON.parse(body);
                                                log(obj["000147619644"].state.status.value_raw);
                        });    
                        }
                        
                        Device_Abfrage ();
                        

                        ich hatte "json: true" mitgegeben. Antwort kam das als Objekt zurück. Konnte es aber nicht mit JSON.stringify verarbeiten.

                        "json: true" auskommentiert, schon kam ein String zurück den ich mit JSON.parse bearbeiten konnte.

                        @paul53, danke für den Denkanstoß!

                        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

                        891

                        Online

                        32.5k

                        Benutzer

                        81.6k

                        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