Home
Home
Tutorials
   PHP
   Java
   Tutti...
Manuali
SmartImage
Marketing
Downloads
Contatti
Affiliati

  Da vedere
Hosting
Statistiche per siti
Corsi per webmaster
Hardware
Processori


  OnFocus
Cenni di programmazione multi-threading - parte 3

Aggiungere motori di ricerca italiani a Mint

Scrivere il robots.txt

  Siti Amici
Miki News
Giochi gratis
Areagratis
Baratto Online
AI Machines
Guide e Manuali Gratis
Script e tutorial
Japgalaxy
Posizionamento Google - Come essere ai primi posti su Google
Appunti universitari
Trailers Cinema
Twago
Add to Technorati Favorites

Tutti i siti amici
Diventa Affiliato

 


Autore: Alessandro Coscia
Categoria: html
Livello: normale Livello normale

Array in JSON: come abilitarne l'uso

Come poter utilizzare liberamente array ed array associativi con JSON

Oggi mi sono imbattuto in un inaspettato problema utilizzando le liberie JSON (www.json.org): "JSON does not support cyclic data structures".

Infatti utilizzando un Array multidimensionale potreste provare il mio stesso stupore:
questo codice infatti vi mostrerà un array VUOTO.
<script type="text/javascript" src="json2.js"></script>
<script>

var Auto = new Array();
Auto[0] = new Array();
Auto[0]['marca'] = "BMW";
Auto[0]['nazionalita'] = "Tedesca";
Auto[1] = new Array();
Auto[1]['marca'] = "Fiat";
Auto[1]['nazionalita'] = "Italiana";

var JSONText = JSON.stringify(Auto);
alert(JSONText);

</script>


Come risolvere il problema? E' presto detto:
   trasformare il nostro Array (e i suoi figli) in un oggetto (di tipo Object) e per fare ciò ecco un'utilissima funzione:

array2obj.js
/**
 * Returns an Object with same structure and content of a given array
 * Useful for Array to Object convertion required for JSON stringify()
 *
 * @author Alessandro Coscia
 * @see www.programmatorephp.it
 * @param Array array
 * @return Object
 */
function array2obj(array) {
  var obj = new Object();
  
  
for (var label in array) {
    obj[label] = new Object();
    
    
// Recursion if needed
    if (typeof array[label] == "object") {
      obj[label] = array2obj(array[label]);
    }
    // Simple vars
    else
      obj[label] = array[label];
  }
  
  
return obj;
}


Come usarla? Ecco qui l'esempio completo:
<script type="text/javascript" src="json2.js"></script>
<script type="text/javascript" src="array2obj.js"></script>
<script>

var Auto = new Array();
Auto[0] = new Array();
Auto[0]['marca'] = "BMW";
Auto[0]['nazionalita'] = "Tedesca";
Auto[1] = new Array();
Auto[1]['marca'] = "Fiat";
Auto[1]['nazionalita'] = "Italiana";

// Questo non funzionera'
var JSONText = JSON.stringify(Auto);
alert(JSONText);

// Questo funzionera'
Auto = array2obj(Auto);
var JSONText = JSON.stringify(Auto);
alert(JSONText);

</script>


Con questo semplice tip potrete essere liberi di utilizzare array ed array associativi nelle vostre applicazioni AJAX che fanno uso di JSON.
Buon coding!

ps: dove trovare il file json2.js? Sul sito ufficiale: http://www.json.org/json2.js


Semitrasparenza con PNG e compatibilità con IE Precedente Indice Successivo I 10 font più compatibili per un sito web
Semitrasparenza con PNG e compatibilità con IE I 10 font più compatibili per un sito web