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 auslesen, Array

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

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

JSON auslesen, Array

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascript
7 Beiträge 2 Kommentatoren 1.3k 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.
  • P Offline
    P Offline
    PeterPan
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich bekomme es einfach nicht hin, folgendes JSON (Abrage der Eigenschaften der Kameras der Synology SurveillanceStation) bspw. nach einem Eintrag des Parameters "MDModeList" oder nach dem Wert des Parameters "ADCap" abzufragen. Auszug aus den ersten Zeilen des JSON:


    {"data":{"cameras":[{"ADCap":0,"AppList":[],"DINum":0,"DONum":0,"MDCap":4,"MDModeList":[0,1],"PDCap":0,"PDDepend":0,"TDCap":0,"advLiveMinDuration":10,"advLiveProfile":1,"advLiveTrigAuto":false,"advLiveTrigEvt":1,"advLiveTrigSingle":true,"analyticsType":0,"applicati

    Zum besseren Verständnis noch ein paar Screenshots:

    6778152b-092e-4e43-9aa3-af1bb2ec12da-grafik.png
    40d51dc4-8900-4f69-b6c0-bf24b9f5621a-grafik.png
    Begonnen habe ich, wie es überall zu finden ist, mit


    request(url_List, function(error, response, body) {
    var bodyObj = JSON.parse(body);
    var adcap = bodyObj.data.cameras[0].ADCap;
    console.log(adcap);
    });

    Fehler im log ist dann

    10:50:37.708 error javascript.0 (727) script.js.Test.Synology-API: TypeError: Cannot read property 'cameras' of undefined
    10:50:37.709 error javascript.0 (727) at Request._callback (script.js.Test.Synology-API:42:26)

    Könnte mir bitte jemand helfen?

    Viele Grüße, Martin

    Jey CeeJ 1 Antwort Letzte Antwort
    0
    • P PeterPan

      Hallo,

      ich bekomme es einfach nicht hin, folgendes JSON (Abrage der Eigenschaften der Kameras der Synology SurveillanceStation) bspw. nach einem Eintrag des Parameters "MDModeList" oder nach dem Wert des Parameters "ADCap" abzufragen. Auszug aus den ersten Zeilen des JSON:


      {"data":{"cameras":[{"ADCap":0,"AppList":[],"DINum":0,"DONum":0,"MDCap":4,"MDModeList":[0,1],"PDCap":0,"PDDepend":0,"TDCap":0,"advLiveMinDuration":10,"advLiveProfile":1,"advLiveTrigAuto":false,"advLiveTrigEvt":1,"advLiveTrigSingle":true,"analyticsType":0,"applicati

      Zum besseren Verständnis noch ein paar Screenshots:

      6778152b-092e-4e43-9aa3-af1bb2ec12da-grafik.png
      40d51dc4-8900-4f69-b6c0-bf24b9f5621a-grafik.png
      Begonnen habe ich, wie es überall zu finden ist, mit


      request(url_List, function(error, response, body) {
      var bodyObj = JSON.parse(body);
      var adcap = bodyObj.data.cameras[0].ADCap;
      console.log(adcap);
      });

      Fehler im log ist dann

      10:50:37.708 error javascript.0 (727) script.js.Test.Synology-API: TypeError: Cannot read property 'cameras' of undefined
      10:50:37.709 error javascript.0 (727) at Request._callback (script.js.Test.Synology-API:42:26)

      Könnte mir bitte jemand helfen?

      Viele Grüße, Martin

      Jey CeeJ Offline
      Jey CeeJ Offline
      Jey Cee
      Developer
      schrieb am zuletzt editiert von
      #2

      @PeterPan sagte in JSON auslesen, Array:

      var adcap = bodyObj.data.cameras[0]ADCap;

      Du willst nicht das erste Element cameras sondern das Element 0 von cameras. Das in den Eckigen Klammern gibt immer an das wievielte Element mit dem Namen es ist.
      Das muss so aussehen:

      var adcap = bodyObj.data.cameras.0.ADCap;
      

      Persönlicher Support
      Spenden -> paypal.me/J3YC33

      P 1 Antwort Letzte Antwort
      0
      • Jey CeeJ Jey Cee

        @PeterPan sagte in JSON auslesen, Array:

        var adcap = bodyObj.data.cameras[0]ADCap;

        Du willst nicht das erste Element cameras sondern das Element 0 von cameras. Das in den Eckigen Klammern gibt immer an das wievielte Element mit dem Namen es ist.
        Das muss so aussehen:

        var adcap = bodyObj.data.cameras.0.ADCap;
        
        P Offline
        P Offline
        PeterPan
        schrieb am zuletzt editiert von PeterPan
        #3

        @Jey-Cee sagte in JSON auslesen, Array:

        var adcap = bodyObj.data.cameras.0.ADCap;

        Hallo Jey-Cee,

        danke für die Erklärung! Leider hat

        request(url_List, function(error, response, body) {
          var bodyObj = JSON.parse(body);
          var adcap = bodyObj.data.cameras.0.ADCap;
         console.log(adcap);
         });
        

        kein Erfolg. Nun ist die Fehlermeldung:
        11:45:06.288 error javascript.0 (727) script.js.Test.Synology-API compile failed: at script.js.Test.Synology-API:42

        Nachtrag: Noch der Log:


        javascript.0 2020-01-05 11:43:15.535 error (727) at process._tickCallback (internal/process/next_tick.js:189:7)
        javascript.0 2020-01-05 11:43:15.535 error (727) at <anonymous>:null:null
        javascript.0 2020-01-05 11:43:15.534 error (727) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
        javascript.0 2020-01-05 11:43:15.533 error (727) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
        javascript.0 2020-01-05 11:43:15.533 error (727) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:491:17)
        javascript.0 2020-01-05 11:43:15.532 error (727) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17)
        javascript.0 2020-01-05 11:43:15.532 error (727) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17)
        javascript.0 2020-01-05 11:43:15.531 error (727) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37)
        javascript.0 2020-01-05 11:43:15.530 error (727) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28)
        javascript.0 2020-01-05 11:43:15.530 error (727) at Object.createScript (vm.js:80:10)
        javascript.0 2020-01-05 11:43:15.529 error (727) SyntaxError: Unexpected number
        javascript.0 2020-01-05 11:43:15.528 error (727) ^^
        javascript.0 2020-01-05 11:43:15.528 error (727) var adcap = bodyObj.data.cameras.0.ADCap.val;
        javascript.0 2020-01-05 11:43:15.527 error at script.js.Test.Synology-API:42
        javascript.0 2020-01-05 11:43:15.527 error (727) script.js.Test.Synology-API compile failed:

        Jey CeeJ 1 Antwort Letzte Antwort
        0
        • P PeterPan

          @Jey-Cee sagte in JSON auslesen, Array:

          var adcap = bodyObj.data.cameras.0.ADCap;

          Hallo Jey-Cee,

          danke für die Erklärung! Leider hat

          request(url_List, function(error, response, body) {
            var bodyObj = JSON.parse(body);
            var adcap = bodyObj.data.cameras.0.ADCap;
           console.log(adcap);
           });
          

          kein Erfolg. Nun ist die Fehlermeldung:
          11:45:06.288 error javascript.0 (727) script.js.Test.Synology-API compile failed: at script.js.Test.Synology-API:42

          Nachtrag: Noch der Log:


          javascript.0 2020-01-05 11:43:15.535 error (727) at process._tickCallback (internal/process/next_tick.js:189:7)
          javascript.0 2020-01-05 11:43:15.535 error (727) at <anonymous>:null:null
          javascript.0 2020-01-05 11:43:15.534 error (727) at promise.then (/opt/iobroker/node_modules/standard-as-callback/built/index.js:19:49)
          javascript.0 2020-01-05 11:43:15.533 error (727) at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
          javascript.0 2020-01-05 11:43:15.533 error (727) at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:491:17)
          javascript.0 2020-01-05 11:43:15.532 error (727) at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:745:17)
          javascript.0 2020-01-05 11:43:15.532 error (727) at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1123:17)
          javascript.0 2020-01-05 11:43:15.531 error (727) at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1070:37)
          javascript.0 2020-01-05 11:43:15.530 error (727) at compile (/opt/iobroker/node_modules/iobroker.javascript/main.js:878:28)
          javascript.0 2020-01-05 11:43:15.530 error (727) at Object.createScript (vm.js:80:10)
          javascript.0 2020-01-05 11:43:15.529 error (727) SyntaxError: Unexpected number
          javascript.0 2020-01-05 11:43:15.528 error (727) ^^
          javascript.0 2020-01-05 11:43:15.528 error (727) var adcap = bodyObj.data.cameras.0.ADCap.val;
          javascript.0 2020-01-05 11:43:15.527 error at script.js.Test.Synology-API:42
          javascript.0 2020-01-05 11:43:15.527 error (727) script.js.Test.Synology-API compile failed:

          Jey CeeJ Offline
          Jey CeeJ Offline
          Jey Cee
          Developer
          schrieb am zuletzt editiert von
          #4

          OK Zahlen mag er nicht, seltsam.
          Versuch es mal so:

          var adcap = bodyObj.data.cameras['0'].ADCap;
          

          So interpretiert er die 0 als String, was in einem JSON dem Key Name entspricht.

          Persönlicher Support
          Spenden -> paypal.me/J3YC33

          P 1 Antwort Letzte Antwort
          0
          • Jey CeeJ Jey Cee

            OK Zahlen mag er nicht, seltsam.
            Versuch es mal so:

            var adcap = bodyObj.data.cameras['0'].ADCap;
            

            So interpretiert er die 0 als String, was in einem JSON dem Key Name entspricht.

            P Offline
            P Offline
            PeterPan
            schrieb am zuletzt editiert von
            #5

            @Jey-Cee Leider auch nicht, jetzt kommt wieder:
            12:13:36.265 error javascript.0 (727) script.js.Test.Synology-API: TypeError: Cannot read property 'cameras' of undefined
            12:13:36.266 error javascript.0 (727) at Request._callback (script.js.Test.Synology-API:42:28)

            Jey CeeJ 1 Antwort Letzte Antwort
            0
            • P PeterPan

              @Jey-Cee Leider auch nicht, jetzt kommt wieder:
              12:13:36.265 error javascript.0 (727) script.js.Test.Synology-API: TypeError: Cannot read property 'cameras' of undefined
              12:13:36.266 error javascript.0 (727) at Request._callback (script.js.Test.Synology-API:42:28)

              Jey CeeJ Offline
              Jey CeeJ Offline
              Jey Cee
              Developer
              schrieb am zuletzt editiert von
              #6

              @PeterPan das bedeutet aber das bodyObj.data keinen Inhalt hat.

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              P 1 Antwort Letzte Antwort
              0
              • Jey CeeJ Jey Cee

                @PeterPan das bedeutet aber das bodyObj.data keinen Inhalt hat.

                P Offline
                P Offline
                PeterPan
                schrieb am zuletzt editiert von
                #7

                @Jey-Cee Hey, das war es dann wohl ... der Aufruf über Webbrowser funktionierte, was mich dazu verleiten ließ, anzunehmen, dass es auch per Skript läuft. Ich musste in meiner Abfrage noch die SID mitgeben bzw. mich vorher einloggen, da mir die Abfrage, ob Inhalt überhaupt kommt, mit der Errorcode "Insufficient user privilege" quittiert wurde.
                Daher vielen Dank für den entscheidenen Hinweis und es läuft jetzt auch mit

                var adcap = bodyObj2.data.cameras[0].MDCap;
                

                Gruß, Martin

                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

                831

                Online

                32.5k

                Benutzer

                81.7k

                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