¿Qué es JSON?

En JavaScript podemos crear objetos y acceder a sus propiedades con esta sintaxis:

var person01 = new Object();

person01.name = 'Bob';
person01.email = 'bob@email.com';
person01.birth = 1982;
person01.sex = 'male';

alert(person01.name);

JSON logo

Sin embargo, como hacer lo anterior puede llegar a ser un poco tedioso, JavaScript también viene con la así llamada notación literal de objetos gracias a la cual podemos crear objetos mucho más fácilmente:

var person02 = {
    'name': 'Peter',
    'email': 'peter@email.com',
    'birth': 1975,
    'sex': 'male'  
}; 
alert(person02.name);

También podemos acceder a las propiedades de los objetos con el uso de los corchetes, además de la notación punto:

alert(person02['name']);

Del mismo modo, en JavaScript podemos crear arrays de la siguiente manera:

var container = new Array('apple', 'pear', 'banana', 'kiwi');
alert(container[2]);

Pero, una vez más, es mucho más sencillo hacerlo con la notación literal, así:

var container = ['apple', 'pear', 'banana', 'kiwi'];
alert(container[0]);

Recordemos que en un array JavaScript podemos mezclar tipos de datos, es decir, podemos poner valores null, booleanos, cadenas y números.

En la práctica se combinan los literales de objeto y los array literales para formar estructuras de datos como ésta:

var group = [person01, person02];

Este código define la variable group, que es un array literal de objetos literales, o, más sencillamente, un array de objetos. Como seguro adivinarás, podemos acceder a los elementos del array de esta forma tan intuitiva:

alert(group[0].name);

Se pueden meter arrays literales dentro de objetos literales para crear datos como el siguiente:

var person = {
    'name': 'Peter',
    'email': 'peter@email.com',
    'birth': 1975,
    'sex': "male",
    'friends': ['Marta', 'Juan', 'Mary', 'Ignacio']
}; 
alert(person.friends[3]);

Pues bien, ¡llegados aquí ya podemos definir a JSON! JSON es la mezcla de los literales de objeto y arrays JavaScript para almacenar datos. Ojo, fíjate que estamos diciendo que JSON es un formato para representar datos; por lo tanto, como JSON representa información, en JSON no hay variables, ni asignaciones, ni igualdades, ni punto y coma.

En consecuencia, la persona del ejemplo anterior queda reflejada así en JSON:

{
    'name': 'Peter',
    'email': 'peter@email.com',
    'birth': 1975,
    'sex': 'male',
    'friends': ['Marta', 'Juan', 'Mary', 'Ignacio']
}

JSON (JavaScript Object Notation) es un formato de almacenamiento e intercambio de datos basado en la sintaxis de JavaScript de los arrays literales y de la notación literal de objetos. Como hemos visto, con JSON podemos crear estructuras de datos muy fáciles de leer que, a diferencia de otros formatos, como XML, son muy ligeras porque se utilizan muy pocos caracteres para definirlas.