Datapayasadas

julio 23, 2008

JSON: ¿El XML libre de grasas?

Filed under: C# — Etiquetas: , , — Matías @ 6:21 pm

Buenas,

Hace unos días comencé con un proyectito personal (que posteriormente voy a subir a este sitio) en el cual me encontré por primera vez con la necesidad de usar JSON. Como me sonaban las siglas, pero como no tenía la mas remota idea de que era, decidí recurrir a la Wikipedia en primer lugar, y luego googlear un ratito.
Lo que pude sacar en limpio es:

  • JSON es un acrónimo de JavaScript Object Notation. Es un subconjunto de la notación literal de objetos de Javascript, pero que no requiere el uso de Javascript.
  • Se utiliza como formato ligero para el intercambio de datos, esto es porque tiene una sintaxis más compacta que XML.
  • Suele ser utilizado conjuntamente con AJAX en sitios web (Google Maps usa una mezcla de AJAX con JSON y XML).
  • No existe información que pueda ser representada en XML, que no pueda ser representada en JSON. La inversa también se cumple.
  • JSON es independiente del lenguaje que utilicemos. Existen numerosas librerías para distintos lenguajes que nos simplifican la tarea de parseo y generación de datos con este formato: http://json.org/. La implementación para .Net (Framework 2.0) que he estado probando es la de James Newton-King y realmente esta muy bien lograda (y documentada!).

El título de éste artículo puede resultar es un tanto amarillo, o al menos exagerado en ciertas situaciones … es claro que si utilizamos tecnologías de compresión (como ser gzip) para enviar datos en formato XML o JSON al usuario, cualquier diferencia de tamaño se ve drásticamente reducida.

Sin embago, hay que reconocer, que JSON representa estructura de datos de una forma mucho más simple, especialmente porque fue diseñado para el intercambio de datos, y no como un lenguaje de marcado de propósito general (como XML).

Bien, ahora veamos un ejemplo sencillo de como serializar y deserializar una instancia de una clase sencilla en JSON.

Digamos que tenemos una clase Usuario, de la siguiente forma:

public class Usuario
{
    public string Nombre;
    public string Apellido;
    public int IdUsuario;
}

Vamos a crear una instancia de esa clase y la vamos a serializar utilizando JSON:

Usuario usu = new Usuario();
usu.Nombre = "Juan";
usu.Apellido = "Ceta";
usu.IdUsuario = 1;
string usuarioJSON = JavaScriptConvert.SerializeObject(usu);

Si inspeccionamos el contenido de usuarioJSON (que es simplemente un string) vamos a encontrar lo siguiente, que es nada menos que la instancia usu de la clase Usuario serializada.

{"Nombre":"Juan","Apellido":"Ceta","IdUsuario":1}

Para deserializarla simplemente hacemos:

Usuario usu2 = JavaScriptConvert.DeserializeObject<Usuario>(usuarioJSON);

El objeto usu2 ahora tendra el mismo contenido que tenía usu.

¿Simple, no?

Convengamos que esta no es la única forma de realizar el proceso, pero esto no es más que una introducción.

Si quieren profundizar más ya saben: Google es su amigo.

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Blog de WordPress.com.

A %d blogueros les gusta esto: