(Ultimamente estoy posteando mucho sobre programacion web y JQuery, espero que me lo perdoneis, a mi me sirve de recordatorio y a otros tal vez para animarse a vivir en este mundo tan malo).
En programacion web, cuando queremos pasar informacion (parametros) desde el lado del cliente al lado del servidor empleamos principalmente dos metodos HTTP que son GET o POST.
Generalmente usamos para ello un formulario que el cliente rellena con los datos que queremos pasar.
El metodo POST se debe emplear cuando el volumen de informacion es elevado, p.ej queremos enviar el contenido de un fichero o una serie de parametros que ocupan varios bytes. El metodo GET se emplea cuando el numero de bytes es menor.
Seguro que te suena el metodo GET, Son listas de valores key=value, Asi que una URL es del estilo:
http://direccion_principal?parametro=valor¶metro2=valor2¶metro3=valor3...
Cuando la peticion llega al servidor, decodifica la URL y obtiene asi la lista de parametros y sus valores asociados.
Bien, … si empleamos el metodo GET es habitual que la forma de paso de parametros sea de 3 formas:
- lista de valores key=value, la mas habitual
- JSON, realmente es un string pero ya organizamos la informacion para que sea facilmente accesible
- XML, otro string que es un XML y que nos permite parsear a posteriori los valores.
Ejemplos:
- Lista de valores: Destino?nombre=Jose&Apellidos=Delgado&alias=piwi
- Json: Destino?json={nombre=Jose,Apellidos=Delgado,alias=piwi}
- XML: Destino?xml=<Parametros><Parametro id=nombre>Jose</Parametro>…
Usar uno u otro, ya depende del programador y de lo “a gusto” que se sienta con uno u otro metodo, no entraremos en “debate”. Pero todos buscan el mismo objetivo: el paso de parametros.
Aqui voy a hablaros de JSON (Javascript Object Notation) y del que podeis obtener mucha mas informacion en el siguiente enlace.
JSON es una forma de intercambio de datos. Y la ventaja que tiene, es que desde el lado de Javascript puede ser considerado como un objeto. Cuando lo tratemos sin embargo desde el lado del servidor, debremos tratarlo como si fuera un string. Existen librerias segun el lenguaje que usemos que nos permiten genera JSON de manera muy simple a partir de un objeto o parsear un string JSON y convertirlo en un objeto.
Por ejemplo si quisieramos crear un objeto JSON desde Javascript podriamos ejecutar un codigo similar al siguiente:
<script>
var a={"nombre":"jose","apellidos":"delgado","alias":"piwi"};
alert (a.nombre);
alert (a.alias);
</script>
Imprimiria los valores correspondientes y podriamos tratarlo desde Javascript como si fuera un objeto (nombre.atributo).
Si en cambio queremos enviarlo a un servidor, debemos convertir el objeto JSON a un string o definirlo directamente como string. En el caso de Javascript podemos emplear uno de los parsers que vimos en la pagina anterior.Por ejemplo importamos la libreria json2.js y ya podriamos ejecutar:
cadena=JSON.stringify(a);
que nos convertiria el objeto JSON de javascript en un string del estilo:
"{"nombre":"Jose","Apellidos":"Delgado":"alias":"Piwi" }"
el cual puede ser enviado al servidor para ser procesado posteriormente.
El asunto es mas complejo y esto es solo una introduccion, pero la idea es que veais como un objeto con sus atributos puede ser serializado a un string y despues a su vez, a posteriori ser “deserializado” de nuevo a objeto, a partir del string recibido. lo que hace que sea muy sencillo el acceso a sus metodos y atributos.



Hola, necesito serializar un array de objetos que a su vez contiene entre sus tipos otro array. El metodo JSON.stringify me serializa solo los atributos y no el array. Existe alguna manera de hacerlo?
Muchas gracias.
Pues creo que si pude hacerlo con:
http://ubuntulife.wordpress.com/2008/10/24/google-gson-una-libreria-java-para-convertir-json-a-objetos-java-y-viceversa/
Es una libreria que me vino muy bien para trabajar con Json.