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

  Da vedere
Hosting
Statistiche per siti
Corsi per webmaster
Hardware
Processori


  OnFocus
Semplice installazione di PHP

Creare RTF da Php - Introduzione

Inviare email con PHP: 1 parte

  Siti Amici
Miki News
Giochi gratis
Areagratis
Baratto Online
AI Machines
Guide e Manuali Gratis
Mylinks
Egregio Directory
Japgalaxy
Travian Suite
Sniper Wolf 's blog
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