Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!gegeweb.org!de-l.enfer-du-nord.net!feeder1.enfer-du-nord.net!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: =?UTF-8?B?SsO2cmcgV2V1bGU=?= Newsgroups: comp.lang.javascript Subject: Re: Object-Eigenschaften auslesen Date: Thu, 10 Nov 2011 08:59:20 +0100 Lines: 62 Message-ID: <9i1eimF735U1@mid.individual.net> References: <9i0bc3FbnmU1@mid.individual.net> Reply-To: weule@7b5.de Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: individual.net oUo83nmuQPHdKdD1DAzwywIMzARHcXbwdVPfBHuY0DuyXl10Q5 Cancel-Lock: sha1:rpltJj+cPyRq1erAqRUnnwSREZI= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.23) Gecko/20110921 Thunderbird/3.1.15 In-Reply-To: Xref: x330-a1.tempe.blueboxinc.net comp.lang.javascript:8190 On 11/09/2011 11:48 PM, Andreas Bergmaier wrote: > Jörg Weule schrieb: >> Hallo, >> >> wenn ich ein Objekt über JSON geladen habe und die Eigenschaften nicht >> kenne. Wie kann ich die Namen der Eigenschaften des Objektes durchlaufen? > > Wieso lädst du Objekte, die du nicht kennst? > Um die Eigenschaften von Objekten (und zwar allgemein, in JavaScript ist > alles ein Objekt) zu durchlaufen, kannst du die for-in-Schleife verwenden. > >> Selfhtml schreibt zur Definition von Objekten als Beispiel: >> >> function Farbe (R, G, B) { >> this.R = R; >> this.G = G; >> this.B = B; >> this.hex = "#"; >> } >> >> var hintergrund = new Farbe("E0", "FF", "E0"); > > Das hier ist ein Objekt, das mithilfe eines Konstruktors erstellt wurde. > Wenn du hintergrund instanceof Farbe überprüfst, kannst du davon > ausgehen dass das Objekt die beschriebenen Eigenschaften hat. > > Dein JSON-gelesenes Objekt hingegen ist "typlos". Als Literal ließe es > sich auch so schreiben: > var hintergrund = {R:"E0", G:"FF", B:"E0", hex:"#"}; > Hier kommst du nur mit der for-in-Schleife weiter. > >> Wie kann ich die Eigenschaften-Namen "R", "G", "B" und "hex" des >> Objektes Hintergrund ermitteln. > > Einfach auslesen? Es gibt verschiedene Schreibweisen, an > Objekteigenschaften zu kommen. Erstere kann man nur verwenden, wenn die > Eigenschaftsnamen den Namenskonventionen entsprechen (z.B. keine > Leerzeichen). > alert("Der Rotton ist "+hintergrund.R); > alert("Der Grünton ist "+hintergrund["G"]); > > Hat das geholfen? > Andreas Ja, Danke -- Jörg P.S.: Ich habe eine Struktur: Konzert-Abend hat Bands / Bands haben Musiker. Hierfür wollte ich einen hirarchischen Baum-Editor bauen. Am besten wäre es, die Struktur des Baumes könnte ich wie ein XML-Schema bereitstellen. Für die Knoten des Baumes könnte man kleine Editor-Fenster einblenden, wenn ein Knoten selektiert ist. So wären die Knoten des Baumes und die Struktur leicht veränderbar. Als Eingenschaften könnten Strings bzw. HTML-Texte (tinymce) oder Auswahlfelder vorkommen. Im Hintergrund sollte eine Datenbank mit Tabellen stehen welche die Daten entsprechend aufnimmt. Das ganze gibt dann am Ende ein Backend in Joomla oder WordPress. Am schönsten wäre es, über die JSON-Struktur der Daten würde ich direkt das Backend bauen können...