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

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    911

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

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.
  • 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 Offline
      apollon77A Offline
      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 Online
        Lenny.CBL Online
        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 Online
          Lenny.CBL Online
          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 Online
              Lenny.CBL Online
              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 Online
                  Lenny.CBL Online
                  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 Online
                      Lenny.CBL Online
                      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

                      838

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      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