JSON
JSON (JavaScript Object Notation
- Notación de Objetos de JavaScript) es un formato ligero de intercambio de
datos. Está basado en un subconjunto del Lenguaje de Programación JavaScript,
es un
formato de texto que es completamente independiente del lenguaje pero utiliza
convenciones que son ampliamente conocidos por los programadores de la familia
de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos
otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el
intercambio de datos.
JSON está constituído por dos
estructuras:
- Una colección de pares de
nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura,
diccionario, tabla hash, lista de claves o un arreglo asociativo.
- Una lista ordenada de
valores. En la mayoría de los lenguajes, esto se implementa como arreglos,
vectores, listas o sequencias.
Estas son
estructuras universales; virtualmente todos los lenguajes de programación las
soportan de una forma u otra. Es razonable que un formato de intercambio de
datos que es independiente del lenguaje de programación se base en estas
estructuras.
En JSON,
se presentan de estas formas:
Un objeto es un conjunto
desordenado de pares nombre/valor. Un objeto comienza con { (llave
de apertura) y termine con } (llave de cierre). Cada
nombre es seguido por : (dos puntos) y los pares
nombre/valor están separados por , (coma).
Un arreglo es una colección de
valores. Un arreglo comienza con [ (corchete izquierdo) y
termina con ] (corchete derecho). Los valores se separan por , (coma).
Un valor puede ser una cadena de caracteres con
comillas dobles, o un número,
o true o false onull, o un objeto o un arreglo. Estas estructuras pueden
anidarse.
Una cadena de caracteres es una
colección de cero o más caracteres Unicode, encerrados entre comillas dobles,
usando barras divisorias invertidas como escape. Un carácter está representado
por una cadena de caracteres de un único carácter. Una cadena de carateres es parecida
a una cadena de caracteres C o Java.
Un número es similar a un número C
o Java, excepto que no se usan los formatos octales y hexadecimales.
Los
espacios en blanco pueden insertarse entre cualquier par de símbolos.
Exceptuando
pequeños detalles de encoding,
esto describe completamente el lenguaje
1. ¿Qué es y para qué sirve JSON?.
JSON (JavaScript Object Notation) es un formato para el
intercambios de datos, básicamente JSON describe los datos con una sintaxis
dedicada que se usa para identificar y gestionar los datos. JSON nació como
una alternativa a XML, el fácil uso en javascript ha
generado un gran numero de seguidores de esta alternativa. Una de las mayores
ventajas que tiene el uso de JSON es que puede ser leído por cualquier
lenguaje de programación. Por lo tanto, puede ser usado para el intercambio
de información entre distintas tecnologías.
Veamos un
sencillo ejemplo de JSON:
Imaginemos
que tenemos una frutería y que queremos obtener el nombre y la cantidad
de fruta y verdura que tenemos. En un principio vamos a suponer que tenemos lo
siguiente:
-
Fruta:
·
10
manzanas
·
20 Peras
·
30
Naranjas
-
Verduras
·
80
lechugas
·
15
tomates
·
50
pepinos
Para
empezar, nos tenemos que familiarizar con la sintaxis de Json:
JSON
Nombre/Par de Valores
Para
asignar a un nombre un valor debemos usar los dos puntos ':' este
separador es el equivalente al igual ('=') de cualquier lenguaje.
"Nombre" : "Geeky Theory"
Valores
Json
Los tipos
de valores que podemos encontrar en Json son los siguientes:
·
Un número (entero
o float)
·
Un string (entre
comillas simples)
·
Un booleano (true
o false)
·
Un array (entre
corchetes [] )
·
Un objeto (entre
llaves {})
·
Null
Objetos JSON
Los
objetos JSON se identifican entre llaves, un objeto puede ser en nuestro caso
una fruta o una verdura.
{ "NombreFruta":"Manzana" ,
"Cantidad":20 }
Arrays JSON
En un
Json puedes incluir arrays, para ellos el contenido del array debe
ir entre corchetes []:
{
"Frutas": [
{ "NombreFruta":"Manzana" ,
"cantidad":10 },
{ "NombreFruta":"Pera" ,
"cantidad":20 },
{ "NombreFruta":"Naranja" ,
"cantidad":30 }
]
}
Una vez
explicado el funcionamiento de la sintaxis JSON, vamos a aplicar nuestro
ejemplo de la frutería.
{"Fruteria":
[
{"Fruta":
[
{"Nombre":"Manzana","Cantidad":10},
{"Nombre":"Pera","Cantidad":20},
{"Nombre":"Naranja","Cantidad":30}
]
},
{"Verdura":
[
{"Nombre":"Lechuga","Cantidad":80},
{"Nombre":"Tomate","Cantidad":15},
{"Nombre":"Pepino","Cantidad":50}
]
}
]
}
Como
podemos observar, hemos creado un objeto llamado frutería y, dentro de ese objeto hemos almacenado un array
de dos elementos. El primer elemento del array contiene un objeto llamado frutay el segundo elemento del array
contiene otro objeto llamado verdura.
Estos objetos a su vez contienen un array cuyo contenido es el
nombre y la cantidad de cada fruta o verdura.
Imaginemos
que nos gustaría saber la cantidad de manzanas que tenemos. El path de este
array sería el siguiente:
Path: json['Fruteria'][0]['Fruta'][0]['Cantidad']
Observamos
que la cantidad de manzanas se almacena dentro del primer elemento del array
que contiene el objeto Frutería,
y a su vez dentro del primer elemento del array que contiene el objeto Fruta.
Todo esto
parece un poco confuso, pero una vez que se domina veremos que tenemos ante
nosotros una gran herramienta de desarrollo.
Existen
herramientas online que ayudan a visualizar mejor un JSON. Una
de las mejores herramientas que he visto es la página JSON Viewer. Si
introducimos nuestro ejemplo observamos lo siguiente:
Y esto es
todo. En lo siguientes tutoriales vamos a ver cómo generar un JSON a partir de una
consulta en MySQL, esto nos proporcionará una herramienta útil a la
hora de obtener datos de la base de datos.
Por
último si tenéis alguna duda no dudéis en escribir un comentario yo intentaré
contestar lo antes posible. Compartid el tutorial en vuestras
redes sociales y animaos a realizar vuestros
propios tutoriales en GeekyTheory.