peterS.: literalschreibweise komplexer objekte: JSON - http://json.org/

Beitrag lesen

gruss Mathias

Ich möchte ein mehrdimensionales assoziatives Array erstellen:

http://forum.de.selfhtml.org/archiv/2004/7/84257/#m493695
  http://forum.de.selfhtml.org/archiv/2004/7/85970/#m507500
  http://forum.de.selfhtml.org/archiv/2004/8/86318/#m510547

var data = new Array();

user["tom"]["familienstand"] = "Ledig";
user["tom"]["wohnort"] = "München";
user["peter"]["familienstand"] = "Verheirate";
user["peter"]["wohnort"] = "Frankfurt";
user["peter"]["wohnort"]["strasse"] = "Bahnhofstrasse";

  
  du benötigst eine reine objekt-struktur:  
  
  ~~~javascript
var data = {  
    user: { /* man kann auch "verbotene" bezeichner erzeugen, wenn man deren namen in hochkommata fasst; */  
      "Thomas Müller": {  
        familyStatus: "ledig",  
        location: "München"  
      }, /* diese lassen sich dann aber nicht mehr ueber die "."-syntax referenzieren, sondern nur noch ueber ["propoertyName"]; */  
      "Peter Schneider": {  
        familyStatus: "verheiratet",  
        location: "Frankfurt"  
      }  
    }  
  };/*  
  var data = {  
    user: {  
      "Thomas Müller": {familyStatus: "ledig", location: "München"},  
      "Peter Schneider": {familyStatus: "verheiratet", location: "Frankfurt"}  
  }};  
*/

die fuer den von Dir vorgegebenen zweiten fall

user["tom"] = new Object();

user["tom"]["familienstand"] = "Ledig";
user["tom"]["wohnort"] = "München";
user["peter"] = new Object();
user["peter"]["familienstand"] = "Verheirate";/*
user["peter"]["wohnort"] = "Frankfurt";    auskommentiert, weil Du das property
user["peter"]["wohnort"] = "Frankfurt";    "wohnort" sowiso gleich ueberschreibst */
user["peter"]["wohnort"] = new Object();
user["peter"]["wohnort"]["strasse"] = "Bahnhofstrasse";

  
  eines aufgeschluesselten wohnortes so aussehen koennte:  
  
  ~~~javascript
data = {  
    user: {  
      "Thomas Müller": {  
        familyStatus: "ledig",  
        residence: {  
          locationName: "München",  
          streetName: "Bahnstr.",  
          streetNumber: "1",  
          zipCode: "81827"  
        }  
      },  
      "Peter Schneider": {  
        familyStatus: "verheiratet",  
        residence: {  
          locationName: "Frankfurt",  
          streetName: "Bahnhofstr.",  
          streetNumber: "1",  
          zipCode: "65929"  
        }  
      }  
    }  
  };/*  
  data = {  
    user: {  
      "Thomas Müller": {familyStatus: "ledig",residence: {locationName: "München",streetName: "Bahnstr.",streetNumber: "1",zipCode: "81827"}},  
      "Peter Schneider": {familyStatus: "verheiratet",residence: {locationName: "Frankfurt", streetName: "Bahnhofstr.", streetNumber: "1", zipCode: "65929"}}  
  }};  
*/

forumslinks zu objektliteralen:

- objekt-literale als "jsDatenbanken" vom 15. 12. 2003,
  - literalschreibweise komplexer objekte: JSON - http://json.org/ vom 17. 08. 2004,
  - Doppelpunkt notation vom 23. 10. 2004,

link zu "JSON - JavaScript Object Notation" von Mr. Douglas Crockford.

by(t)e by(t)e - peterS. - pseliger@gmx.net

--
"Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive." - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]