[mootools] each() met json

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • rhodium
  • Registratie: Augustus 2003
  • Laatst online: 21:02
Ik haal json data op met behulp van mootools en dit gaat prima.
Alleen nu zit vast met waarschijnlijk iets simpels.

Ik gebruik het volgende om de json data te verwerken:

code:
1
2
3
jsonObj.data.each(function(row) {
    alert(row.id +' '+ row.username +' '+ row.email);
});


Nu krijg ik netjes 5 alerts met de juiste data.

Alleen nu wil ik het woord achter de punt (voorbeeld: username) niet van te voren opgeven. Deze krijg ik op een andere manier. Maar als ik het volgende doe:

code:
1
2
3
  var benaming = 'wachtwoord';

  alert(row.benaming);


Krijg ik undefined te zien.
Ik heb het al geprobeerd met value, valueOf, get('wachtwoord'), maar niks schijnt te werken.

Ik haal wat er achter de punt moet namelijk uit het tabel waar de json data weer in moet komen. Maar doordat ik niet voor elkaar krijg om die row.username op een dynamische manier aan te spreken loop ik vast.

jsonObj.data[0]['username'] werkt ook niet. Wat ik begrepen had is doordat het om een object gaat en niet een array.

Acties:
  • 0 Henk 'm!

  • rhodium
  • Registratie: Augustus 2003
  • Laatst online: 21:02
Ik heb het zelf nu uitgevonden door gewoon wat te proberen :)

code:
1
2
3
4
5
jsonObj.data.each(function(row) {
    var hash = new Hash(value);
      
    alert(hash.get('username'));
});

Acties:
  • 0 Henk 'm!

Verwijderd

JavaScript:
1
2
  var benaming = 'wachtwoord';
  alert(row[benaming]);

?

[ Voor 40% gewijzigd door Verwijderd op 12-11-2008 22:24 ]


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Niet gelezen? Hij werkt met JSON...niet met een array. Dat legt ie notabene zelf nog uit 8)7

rhodium: die value op regel 2, moet dat niet row zijn :?

Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Wat blues zegt. In Javascript kun je een member van een object altijd ook met [..] notatie opvragen (en daar dus een variabele in stoppen). Dat we dat met arrays altijd al doen, is puur omdat array.0 syntactisch incorrect is ;)
JavaScript:
1
2
3
4
5
6
7
8
value = obj.property;

//is equivalent aan:
value = obj[property];

//is equivalent aan:
var p = "property";
value = obj[p];

[ Voor 57% gewijzigd door _Thanatos_ op 12-11-2008 22:54 . Reden: Voorbeeldje erbij ]

日本!🎌


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Mm, ik zou t onlogisch vinden als dat kan maar ik zal het eens proberen dan :+

edit: werkt als een trein inderdaad :)

[ Voor 21% gewijzigd door Cartman! op 12-11-2008 23:10 ]

Pagina: 1