Introducción a JSON, ¿el de la película?

Reinaguramos blog! Problemas técnicos pero todo solucionado y corriendo nuevamente :D.
Retomar los saludos y agradecimientos a grandes amigos que me impulsaron y ayudaron a hacer esto posible como: Fredy Guibert, Wilson Vargas y nuestro inseparable compañero: internet.

Hace un tiempo, anduve chequeando nuevos cursos en MVA cuando de pronto me topé con uno lllamado: Introduction to JSON with C#. Me ganó la curiosidad y seguí el curso. Me enamoré.
¿Cómo puede ser posible que no haya conocido esto antes? Fue entonces que me puse a practicar y descubrí el gran poder de esta tecnología, así que decidí escribir algo acerca de ello.

Y bueno, sin más rodeos, ¡empecemos con el tema!

¿Qué es JSON?

Es esencial que manejemos el concepto de JSON para poder entender la necesidad de por qué deberíamos aprenderlo.

JSON (JavaScript Object Notation) es un ligero formato para el intercambio de datos. Podríamos llamarle "archivo de texto plano" (algo así como los .txt que creas en tu notepad).

¿Por qué y para qué usar JSON?

No importa si tu intención es programar para web, Windows, Android, iOS, IoT, un sistema privado de una empresa o hasta para videojuegos: JSON puede ser utilizado en cualquiera de estas plataformas.

JSON nació como una alternativa a XML y ha resultado venciéndola gracias a su sencillez y tamaño reducido.
Según Benjamin Lin, Program Manager Intern en Microsoft, existen principalmente 4 razones para usar JSON:

  • Para los humanos es fácil de leer y escribir. Incluso lo podemos escribir manualmente desde un bloc de notas.
  • Puede ser usado con casi todos los lenguajes de programación.
  • Utiliza la misma sintaxis que los objetos JavaScript.
  • Puede ser usado como un almacenamiento de datos para una aplicación (de hecho, esta es la funcionalidad que le dí a JSON dentro de mi ejemplo más adelante).

Entonces: JSON es un archivo de texto plano sencillo que puede ser utilizado como herramienta para intercambio de datos o como almacenamiento de los mismos.

Estructura o sintáxis de un JSON

Después de esta introducción, vayamos más técnicos. ¿Cómo se estructura un archivo JSON?
La primera pregunta a resolver será ¿qué puede contener un archivo como este?
Rpta: Valores, arreglos, objetos... O todo al mismo tiempo!

Segundo, ¿y qué tipos de valores puede almacenar un JSON?

  • Strings
  • Números
  • Booleanos (true, false)
  • Nulos (null)
  • Objetos
  • Arreglos

JSON hace uso de pares nombre/valor para la organización de los datos. Un ejemplo de par es:


"nombre" : "Javier"

Lo que está a la izquierda de los puntos : son los nombres -que deben estar siempre rodeados de comillas "-, y lo de la derecha son los valores.
Los valores solo deben estar rodeados de comillas " cuando se trate de un valor string.

Para entenderlo mejor, vayamos a un ejemplo.

El siguiente es un archivo JSON que almacena dos valores string (nombre y nacionalidad), un int (edad) y un bool (estaCasado).


{
    "nombre" : "Javier",
    "edad" : 18,
    "nacionalidad" : "Peruano",
    "estaCasado" : false
}

Cada par nombre/valor debe ir separado por una coma ,.
En este ejemplo podemos darnos cuenta que todo está encapsulado mediante llaves {}. Este encapsulamiento entre llaves significa que lo que está dentro de ellas es un Objeto; en este caso, podría representar la información de un objeto Persona, por ejemplo.

Muy bien, ahora ahondemos un poco más y juguemos mezclando Objetos y arreglos.
Para mostrar la flexibilidad de JSON utilizaremos 3 ejemplos.

Ejemplo 1: Objetos dentro de objetos

Continuando con el ejercicio anterior, haremos unas pequeñas modificaciones a nuestro objeto Persona.

Sabemos que además de un nombre, edad, nacionalidad y estado civil, una persona puede tener también una dirección. Esta dirección tiene varios subcomponentes como: calle, número y nombre del distrito; esto supone un objeto. Nuestro JSON nos quedaría así:


{
    "nombre" : "Javier",
    "edad" : 18,
    "nacionalidad" : "Peruano",
    "estaCasado" : false,
    "direccion" : {
        "calle" : "Av. Windows",
        "numero" : "10",
        "distrito" : "Trujillo"
    }
}

Si han sido observadores, han podido notar hemos almacenado un objeto dentro de otro objeto, y claro que esto es posible! En este caso, tenemos un objeto direccion, que funciona como un elemento dentro de nuestro objeto Persona.

Ejemplo 2: Arreglos

Ahora agreguemos un elemento más a nuestro objeto Persona que nos ayude a entender los arreglos en JSON. Este arreglo, como para promocionar Marca Perú, será de platos de comida favoritos :P y será, obviamente un arreglo de string.

Para representar un array en JSON hacemos uso de corchetes []. Tal como a continuación:


{
    "nombre" : "Javier",
    "edad" : 18,
    "nacionalidad" : "Peruano",
    "estaCasado" : false,
    "direccion" : {
        "calle" : "Av. Windows",
        "numero" : "10",
        "distrito" : "Trujillo"
    },
    "platos" : ["cebiche","lomo saltado","bisteck a lo pobre"]
}

Separamos los valores, mediante comas , y listo! Tenemos nuestro arreglo.
Ahora vayamos un poco más allá y hagamos un remix de todo lo aprendido!

Ejemplo 3

Para este ejemplo, vamos a representar un arreglo de 2 objetos Persona. Esto se definiría más o menos así:


[
    {
        "nombre" : "Javier",
        "edad" : 18,
        "nacionalidad" : "Peruano",
        "estaCasado" : false
        "direccion" : {
            "calle" : "Av. Windows",
            "numero" : "10",
            "distrito" : "Trujillo"
        },
        "platos" : ["cebiche","lomo saltado","bisteck a lo pobre"]
    },
    {
        "nombre" : "Pedro Picapiedra"
        "edad" : 39
        "nacionalidad" : "Americano"
        "estaCasado" : true,
        "direccion" : {
            "calle" : "Av. Roca en punta",
            "numero" : "111",
            "distrito" : "Piedradura"
        },
        "platos" : ["rockiche","carbon saltado","tronco a lo pobre"]
    }
]

Analicemos y leamos el archivo:

  • Los corchetes [] nos indican que este JSON contiene un arreglo.
  • Observamos que dentro de él hay dos pares de llaves {}, esto significa que dentro del arreglo tenemos dos elementos objeto (también separados por comas ,).
  • Dentro de cada objeto encontramos la misma estructura que el ejemplo inicial, dos string, un int y un bool.

De esta forma concluimos que:

Un arreglo en JSON puede ser una colección de cualquier tipo, incluso objetos.

Podemos tener tantas anidaciones de objetos, arrays o tipos de datos como queramos.

¡Y así de fácil es para un humano leer y escribir JSON! Simplemente es cosa de jugar con estos conceptos, probar combinaciones y verás que puedes adaptarlo todo a tu gusto o a tu necesidad.

Excelente!

Ya tienes todo lo necesario para empezar a hacer cosas geniales usando JSON! Solo basta con experimentar y seguir practicando, verás que las ideas te van a sobrar ;).

Espero que este humilde artículo te haya servido de algo para poder entender conceptos básicos sobre el tema y que aproveches lo aprendido para crear cosas increíbles!

Si tienen alguna duda, pregunta o aporte no duden en buscarme y poder charlar un poco. Nos leemos :D.

Ahora la vida es tan sencilla como:
-Oye, ¡encontré la solución!
-¿Cómo le hiciste?
-Internet.