Felix Riesterer: Notation und Erweiterung js-Array nach JSON

Beitrag lesen

Lieber Enrico,

Soweit ich JSON richtig verstanden habe, gibt es hier keine Möglichkeiten, auf nummerierte assoziative Arrays
zuzugreifen

JavaScript kennt keine "assoziativen" Arrays. In JavaScript ist alles ein Objekt. Und mit der JSON-Schreibweise notierst Du genau das, ein Objekt.

Du kannst Objekten Eigenschaften und Methoden geben. In Deinem Fall ist es wohl eher so, dass Du einem Objekt "Unterobjekte" gibst. Anstatt das hier zu schreiben:

function Filmsammlung_einlesen ()
{
   Filmdaten[1] = new Object ();
   Filmdaten[1]["Nr"]     = "...";
   Filmdaten[1]["Titel"]  = "...";

könntest Du auch eine JavaScript-Datei schreiben, in der Du die Filmdaten einfach in einem Objekt definierst, das Du als Object-Literal notierst:

Filmdaten = [ // hier wird ein Array-Objekt angelegt!  
    { // hier beginnt ein "anonymes" Objekt, das über einen Array-Index erreicht werden kann  
        Nr : "...",  
        Titel : "..."  
        Inhalt : "...",  
        Genre : "...",  
        FSK : "..."  
    }, // Ende des ersten Array-Eintrags (der ein Objekt ist)  
  
    { // nächstes Objekt  
        Nr : "...",  
        Titel : "..."  
        Inhalt : "...",  
        Genre : "...",  
        FSK : "..."  
    }  
]; // Ende des Arrays.

Vielleicht siehst Du nun, wie die Array-Struktur in JSON notiert dem entspricht, wie Du Dir das im Grunde vorgestellt hast. Das Array enthält Objekte. Jedes Objekt enthält diverse Eigenschaften. In Deinem Anwendungsfalle entspricht ein Array-Eintrag einem Film, der als Objekt mit Eigenschaften definiert ist (sozusagen das JavaScript-Gegenstück zu den assoziativen Arrays in beispielsweise PHP).

Um nun eine Umblätter-Funktion anzubieten, bräuchtest Du nur zu ermitteln, wieviele Einträge (alias "Objekte") Du auf einer Seite anbieten möchtest, um dann später im entsprechenden (durchnummerierten) Objekt fortzufahren.

Wo hast Du jetzt noch Fragen?

Liebe Grüße,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)