Iterare JSON con javascript

Data: 24 Ottobre 2006
Autore: Maurizio Pelizzone

Non voglio soffermarmi a parlare di cosa e come usare JSON ma di come attraversarlo in modo ricorsivo.

Nel mio caso avevo bisogno di gestire una matrice complessa, velocemente modificabile tramite javascript, ma prima dell’invio al server dovevo trasformare il tutto in formato XML.

La struttura dinamica della matrice JSON non mi permettava un approccio statico, e quindi l’unica strada percorribile mi è sembrata un iterazione ricorsiva.

La funzione fa uso della proprietà “constructor” per capire il tipo di aggetto contenuto nella coppia e quindi valutare la gestione della ricorsività.

function jsonIterator( obj ) {
 for ( var i in obj ) { 
  if ( obj[i].constructor.toString().indexOf('Object') < 0 ) { 
   alert( "<" + i + ">" + obj[i] + "</" + i +">" );
  } else {
   // se è un oggetto gestisco la ricorsività
   alert( "<" + i + ">" );
   jsonIterator( obj[i] );
   alert( "</" + i + ">" );
  }
 }
}

Se quindi ipotizziamo un matrice complessa simile a questa …

o = {}
o.a = 1
o.b = [9,8,7,6,5]
o.c = {}
o.c.aa = 11
o.c.bb = 22
o.c.cc = {}
o.c.cc.aaa = 111
o.c.cc.bbb = "stringa"
o.c.cc.ccc = [1,2,3,4,5]
o.c.dd = 33
o.d = "stringa"

.. possiamo attraversarlo iterarlo semplicemente scrivendo:

jsonIterator(o)

Forse ho scoperto l’acqua calda … ma mi sento tanto bravo :) :)

Per il momento è testato solo con ie6 e FF1.5, se riesco domani provo con ie7 e FF2

Technorati:
BlogBabel:

Share and Enjoy:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg
  • co.mments
  • De.lirio.us
  • Fark
  • Furl
  • NewsVine
  • Reddit
  • Smarking
  • Spurl
  • Segnalo
  • OKNOtizie
  • Taggly

Questo articolo è stato pubblicato il 24 Ottobre 2006 alle 11:46 pm ed è stato letto 7384 volte
Archiviato sotto sviluppo, javascript.

Se questo post ti è piaciuto puoi iscriverti al mio Feed Rss e ricevere direttamente gli aggiornamenti di questo blog sul tuo FeedReader oppure puoi decidere di offrirmi un caffè.
Se ti va puoi lasciare un commento e leggere quelli degli altri, ma se preferisci puoi passare direttamente al post precedente o a quello successivo.


Forse collegati ..

  • Modificare le Select con DOM , Javascript e Ajax
    Prefazione: Quello che segue è il resoconto una serie di esperimenti per capire come utilizzare Ajax per migliorare l'usabiltà dei siti
  • links for 2006-02-23
    Ajax tabs I've taken the idea of the sliding door tabs and mixed them up with a little javascript and ajax
  • links for 2006-03-08
    image cross fade redux libreria javascript per automatizzare slideshow su dissolvenze (tags: library javascript css)
  • approfondimenti javascript
    Javascript è una di quelle cose che è facile dire "lo conosco" ... function hello() { alert("hello"); }
  • links for 2006-02-28
    Storia di Internet Explorer - Wikipedia Le origini Internet Explorer fu rilasciato nel 1995 come risposta di Microsoft al successo riscosso

Lascia un messaggio