Felix Riesterer: Javascript Objekt ansprechen

Beitrag lesen

Liebe(r) hawkmaster1,

Hallo,

destinationSetting ist ein Array:

    scanOptions.jobSetting.destinationSetting = [ {

ja ok, aber angenommen es ist befüllt wie spricht man dann den Inhalt an ? Also z.b. entryID ?

dieses Array, wenn es vorhanden ist, enthält laut Deinem Code genau ein Objekt:

      scanOptions.jobSetting.destinationSetting = [ {
        "destinationType": "book",
        "addressbookDestinationSetting": {
          "destinationKind": "folder",
          "entryId": $( 'input[name="folder"]:checked' ).val()
        }
      } ];

Dieses Objekt kann als erstes Array-Element so erreicht werden:

if (scanOptions.jobSetting.destinationSetting instance of Array
    && scanOptions.jobSetting.destinationSetting.length > 0
) {
    // ...
}

Obiger Code prüft, ob scanOptions.jobSetting.destinationSetting tatsächlich ein Array ist, und ob das Array mindestens ein Element enthält.

Nun kann man das Objekt mit dem Array-Index 0 ansprechen:

if (scanOptions.jobSetting.destinationSetting instance of Array
    && scanOptions.jobSetting.destinationSetting.length > 0
) {

    var dS = scanOptions.jobSetting.destinationSetting[0];
    console.dir(dS); // debug-Ausgabe der Objektstruktur auf der JS-Konsole des Browsers
}

Da in Deinem Code die Objekt-Struktur genau eine Eigenschaft "destinationType" mit String-Wert und eine Eigenschaft "addressbookDestinationSetting" mit Objekt-Wert kennt, kannst Du diese nun direkt ansprechen:

if (scanOptions.jobSetting.destinationSetting instance of Array
    && scanOptions.jobSetting.destinationSetting.length > 0
) {
    // short form for easier reading
    var dS = scanOptions.jobSetting.destinationSetting[0];

    // dS.destinationType (string)
    console.log("destinationType: " + dS.destinationType);

    // dS.addressbookDestinationSetting (object)
    console.dir(dS.addressbookDestinationSetting);

    // properties of dS.addressbookDestinationSetting
    console.log("destinationKind: " + dS.addressbookDestinationSetting.destinationKind);
    console.log("entryId: " + dS.addressbookDestinationSetting.entryId);
}

Liebe Grüße,

Felix Riesterer.