Inviare dati JSON al server

by json.it
Poiché i dati del AJAX sono trasmessi come stringa messa, una certa preparazione dei dati di JSON deve essere fatta prima che possa essere trasmessa al server. Fortunatamente, Douglas Crockford su JSON.org ha rilasciato un insieme di procedure molto utili che convertiranno qualunque tipo di dati di Javascript in stringa di JSON che può essere trasmessa facilmente al server.

La fonte per questa libreria può essere ottenuta su http://www.json.org/json.js. Il codice è di pubblico dominio, ed è facile da usare.

Il seguente esempio definisce un oggetto di JSON quindi usa il metodo toJSONString() per convertire l'oggetto in stringa pronta per essere trasmessa al server.

var impiegati = { "contabili" : [ // "contabili" è un array in "impiegati".
                                  { "nome"    : "Mario",  // Primo elemento
                                    "cognome" : "Rossi",
                                    "anni"    : 32 },

                                  { "nome"    : "John",  // Secondo elemento
                                    "cognome" : "Smith",
                                    "anni"    : 24 }
                                ], // fine array "contabili".
                  "vendite"   : [ // "vendite" è un altro array in "impiegati".
                                  { "nome"    : "Sally", // Primo elemento
                                    "cognome" : "Green",
                                    "anni"    : 27 },

                                  { "nome"    : "Jim",   // Secondo elemento
                                    "cognome" : "Galley",
                                    "anni"    : 41 }
                                ] // fine dell'array "vendite".
                } // fine "impiegati"

var alServer = impiegati.toJSONString();                

document.writeln(alServer);
Ciò resituisce (su un'unica linea):
// {"contabili":[
// {"nome":"Mario","cognome":"Rossi","anni":32},
// {"nome":"John","cognome":"Smith","anni":24}
// ],
// "vendite":[
// {"nome":"Sally","cognome":"Green","anni":27},
// {"nome":"Jim","cognome":"Galley","anni":41}
// ]}