[JS] JSON resultaten verkrijgen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 06-09 16:17

Zenda

goes milk!

Topicstarter
Ik ben er al de hele morgen mee bezig en het wil maar niet lukken.

Ik stuur een AJAX request naar een bestand die een array terug geeft:

code:
1
{adressen:{aantal:1,melding:"OK",adres:[{straat:"Pietjesstraat",huisnummer:"25",postcode:"2363ZH",plaats:"LEEUWARDEN",netnummer:"058"}]}}


Vervolgens doe ik het volgende (gebruik Prototype):

code:
1
2
3
  onSuccess: function(transport) {
      var jsonarray = transport.responseText.evalJSON();
  ..


Hoe kan ik nou de key 'straat' of 'plaats' benaderen?

Wat 'undefined' opleverde was:

jsonarray.adressen.adres.straat
jsonarray.adres.straat
jsonarray.straat
jsonarray.straat['adres']
jsonarray[0]
jsonarray.adressen[0]
en heb zo nog een aantal geprobeerd..

Als ik 'jsonarray' alert krijg ik te zien: [object] [Object]

Als ik : var jsonarray = transport.responseText; probeer (dus zonder evalJSON()), dan krijg ik een string terug waarvan de inhoud die JSON array is.

Ik kom er niet uit, heb ook super veel sites bezocht die over dit onderwerp gingen. Kan iemand me verder helpen?

Zenda likes some milk every now and then..


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

JavaScript:
1
alert(jsonarray['adressen']) 

levert op?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 06-09 16:17

Zenda

goes milk!

Topicstarter
[object] [Object]

Nu heb ik ook nog alert(jsonarray['adressen'][0]); geprobeerd, maar dat levert weer 'undefined' op :/

Doe ik het wel goed met de verwerking van die AJAX request? In mijn firebug console zie ik wel de array staan die ik in mijn eerste post noemde.

[ Voor 88% gewijzigd door Zenda op 03-09-2008 12:25 ]

Zenda likes some milk every now and then..


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Dus dat geeft aan dat je in je array zit, denk eens verder als je je array zou neerpennen op papier? ;)

adressen geeft geen resultaat, maar [Object] terug, dus er zit wederom een array in?

Hoe zitten je levels in elkaar: jsonarray -> adressen -> aantal

Hoe zou dit met JS benaderd moeten worden?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

jsonarray.adressen.adres[0].straat

de vierkante haken betekenen dat je adres een array is.

Acties:
  • 0 Henk 'm!

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 06-09 16:17

Zenda

goes milk!

Topicstarter
Ik probeer al de hele ochtend :)

alert(jsonarray['adressen']['adres']) geeft ook weer: [object] [Object] aan..

Maar dan? ['adressen']['adres'][0] is bijv. weer undefined ?
Verwijderd schreef op woensdag 03 september 2008 @ 12:30:
jsonarray.adressen.adres[0].straat

de vierkante haken betekenen dat je adres een array is.
Omg, tnx :) Werkt, ik had gewoon een voorbeeld nodig.. Arrays in PHP geen probleem, maar JS ben ik nog lerende.. Super bedankt!

[ Voor 49% gewijzigd door Zenda op 03-09-2008 12:33 ]

Zenda likes some milk every now and then..


Acties:
  • 0 Henk 'm!

Verwijderd

Misschien is deze tool handig: http://braincast.nl/samples/jsoneditor/

Copy/paste je json in de json textarea en klik op "build tree". Als je dan de nodes in de boom structuur links open klikt (en je klikt op een node) zie je onder de textarea op de "editor" tab het pad wat je kan gebruiken om de waarden te benaderen...

Acties:
  • 0 Henk 'm!

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

_Thanatos_

Ja, en kaal

Pak anders Firebug er eens bij, en gooi de json array in console.debug(), of break op je code en voeg em aan de watches toe. Dan kun je door je objecten wandelen. Want de "alert" debug-methode werkt niet, laat staan als je IE gebruikt.

日本!🎌

Pagina: 1