¿Quién es Jason?

Una de las preguntas mas frecuentes últimamente es como transferir información en Android. Dentro de esto, también he visto de que la gente recién entrando a Android tiene dudas acerca de JSON.

La intención de este blog post es crear una entrada corta y pequeña para aclarar que es y como funciona JSON. Luego usare este blog post como base para otros blog posts.

Comencemos.

Quien es Jason?

Si nunca has escuchado la frase JSON, talvez esto es lo que se te viene a la cabeza:

Jason Voorhees, famoso por Viernes 13
Jason Voorhees, famoso por la película Viernes 13

Lamentablemente (o afortunadamente) cuando hablamos de JSON, no hablamos del personaje de la película de Viernes 13.

JSON esta definido como “JavaScript Object Notation“, y es simplemente una estructura de información. Aunque JSON tiene la palabra JavaScript en su nombre, el hecho de ser una estructura de información hace que JSON sea lenguaje agnóstico, y sea usado por cualquier lenguaje.
La comparación de JSON siempre ha sido, y hasta el momento solo es XML.

Que es JSON?

JSON, en su forma mas básica, es una estrutura en forma llave-valor.
Por ejemplo:

{
"objeto1": "valor1",
"objeto2": 123
}

Aun con lo básico de este ejemplo podemos comenzar a ver los requisitos de como funciona la estructura de JSON:

  • JSON tiene que estar entre braces { }
  • Las llaves tienen que ser String
  • Los valores pueden ser String, int, double, objetos JSON, o listas de objetos JSON
  • Si el valor es String, necesita estar entre comillas ” “
  • Valores int y double no necesitan comillas ” “
  • Los valores de listas de JSON deben estar entre brackets [ ]
  • Separamos los objetos con comas ,

Ahora que sabemos lo básico, podemos comenzar un ejemplo de como crear una estructura mas compleja.

Ejemplo

Vamos a crear una estructura que asemejaría la información de un paciente en un hospital:

{
"nombre": "Eduardo Flores",
"edad": 33,
"temperatura": 37.1
}

Podemos crear una lista de objetos de esta forma, pero obviamente queremos tener algo mas complejo.
Ahora vamos a crear un objeto JSON dentro de nuestro objeto JSON:

{
"nombre": "Eduardo Flores",
"edad": 33,
"temperatura": 37.1,
"direccion": {
"numero_casa": 1001,
"calle": "Main St.",
"ciudad": "Salt Lake City"
}
}

Esto tiene un objeto JSON adentro de otro objeto JSON.
Ahora vamos a hacer esto un poco mas complejo agregándole una lista de objetos, adentro de nuestro objeto JSON:

{
"nombre": "Eduardo Flores",
"edad": 33,
"temperatura": 37.1,
"direccion": {
"numero_casa": 1001,
"calle": "Main St.",
"ciudad": "Salt Lake City"
},
"telefono": [{
"numero": "801-222-3333",
"tipo": "celular"
}, {
"numero": "801-333-4444",
"tipo": "oficina"
}]
}

Esta lista es interesante porque tiene 2 objetos de tipo teléfono, con un elemento de llave numero, y otro de llave tipo.

Y eso es todo! Ahora puedes hacer y leer cualquier tipo de JSON, sin importar lo complejo que sea.

Ultima cosa.
Existen paginas de internet, como http://jsonlint.com que te ayudan a validar y organizar un bloque de JSON.
También existen extensiones para safari, firefox y chrome que hacen que leer JSON sea fácil en tu buscador.
Eduardo.

Comenta este post