Cargando



Manejo de JSON con Node.js

En este tutorial te enseñamos cómo es el manejo de JSON utilizando Node.js, pasando desde su creación, lectura, edición y utilizando técnicas avanzadas para combinar el mismo con las colecciones dentro del entorno de desarrollo.


ago 31 2015 12:50
Profesional
Total de Apartados : 4
dic 01 2016 01:15

manejo-json-cover.jpg

 

Uno de los formatos más populares y efectivos en la actualidad para la lectura y escritura de datos es el JSON o por sus siglas en ingles JavaScript Object Notation, el cual posee un formato predefinido y no depende de ningún lenguaje de programación, permitiendo la comunicación entre aplicaciones de manera transparente y sin problemas.

 

Pero no solo el JSON ha crecido en popularidad, JavaScript como lenguaje de programación también lo ha hecho, y esto gracias a su entorno de desarrollo llamado Node.js el cual nos permite ejecutar el mismo del lado del servidor.

 

Node.js soporta de manera nativa y de una manera sencilla los objetos de tipo JSON en lo que respecta a la comunicación de la data, veamos entonces las diferentes formas que tenemos en Node.js de realizar el manejo de los JSON en nuestro código.

 


1. Creación de un objeto JSON


Una de las operaciones principales que debemos aprender a manejar para la manipulación de un JSON es la creación del objeto como tal, que gracias a esta creación podremos acceder a sus diferentes atributos de manera rápida y sencilla.

 

Para ello vamos a crear un archivo nuevo llamado creación_json.js el cual contendrá la declaración de nuestro objeto JSON llamado usuario y tendrá varios atributos inherentes al mismo, veamos como luce:

var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxx.com',
			    edad: 36,
			    fechaRegistro: new Date()
}
Como vemos la estructura del JSON obedece a la forma de llave-valor empezando su declaración con llaves, donde nos podemos encontrar varios tipos de valor, desde cadena de caracteres, números e incluso utilizamos la función Date() para obtener la fecha actual. La declaración de nuestro objeto es bastante fácil de leer, tanto para el ojo humano como para cualquier lenguaje, incluso podemos declarar un objeto JSON anidado para agrupar la mayor cantidad de valores, veamos como luce en el siguiente ejemplo:
var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxx.com',
			    edad: 36,
			    fechaRegistro: new Date(),
			    direccion: {
							   ciudad: 'Madrid',
							   pais: 'Spain' }
}
Con nuestro JSON creado si queremos ver su contenido así como su estructura con el uso de console.log() podemos verlo sin problemas, veamos cómo queda nuestro código final:
var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxx.com',
			    edad: 36,
			    fechaRegistro: new Date(),
			    direccion: {
							   ciudad: 'Madrid',
							   pais: 'Spain' }
}
console.log(usuario);
Por último para ejecutarlo en nuestra consola solo debemos utilizar el comando node seguido del nombre del archivo, Podéis probar respuesta de la consola.

 

Como pudimos ver la creación de nuestro objeto JSON fue sumamente sencilla, y esto gracias al entorno de desarrollo y su manejo nativo y sin problemas de este formato.

 

 


2. Accediendo a los atributos


Poder desplegar nuestro JSON es útil si queremos revisar su estructura en busca de errores o algún otro detalle, pero por lo general luego de generar este objeto lo más seguro es que necesitemos acceder a sus atributos, verificar si un atributo existe o si lo hemos recibido mediante la operación un API RESTful verificar que atributos posee nuestro objeto.

 

Si ya conocemos algo de programación orientada a objetos, sabemos que los objetos tienen atributos y podemos acceder a los mismos mediante la instancia del objeto en cuestión, en Node.js es mucho más simple, con solo utilizar el objeto y el nombre del atributo podemos acceder al mismo, veamos como aplicamos esto a nuestro objeto creado anteriormente:

var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxxx.com',
			    edad: 36,
			    fechaRegistro: new Date(),
			    direccion: {
							   ciudad: 'Madrid',
							   pais: 'Spain' }
}

console.log('Nombre Usuario:' + usuario.nombre);
console.log('Email Usuario:' + usuario.email);
console.log('Edad del Usuario:' + usuario.edad);
console.log('Fecha de Registro:' + usuario.fechaRegistro);
console.log('Pais Usuario:' + usuario.pais);
Ejecutemos nuestro ejemplo y veamos la respuesta por consola.

 

[attachment=7621:manejo-json-nodejs-2.jpg]

 

De esta forma pudimos acceder a todos nuestros atributos sin mucho problema, sin embargo si somos observadores nos damos cuenta que para el caso del Pais Usuario nos dio la respuesta de undefined, y esto se debe a que es un objeto anidado, pero no debemos preocuparnos ya que con solo colocar el objeto contenido podemos acceder al atributo:

console.log('Pais Usuario:' + usuario.direccion.pais);
Vamos a ejecutar nuevamente nuestro ejemplo y veamos como nuestro error fue solucionado.

 

Pudimos solucionarlo sin problemas, pero esto a que conocemos la estructura de nuestro JSON, pero en el caso que no lo sepamos debemos acudir a otras técnicas que nos ayudarán en esta tarea, para ello es tan sencillo como que realicemos una iteración sobre los atributos de nuestro objeto, veamos:

var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxx.com',
			    edad: 36,
			    fechaRegistro: new Date(),
			    direccion: {
							   ciudad: 'Madrid',
							   pais: 'Spain' }
}

for(var atr in usuario){

 console.log(atr);

}
Ejecutamos nuestro ejemplo y vemos como recibimos todos los atributos contenidos en nuestro objeto.

 

De esta forma si no sabemos la estructura de nuestro JSON podemos obtenerla fácilmente y en el caso que tengamos objetos anidados podemos realizar lo siguiente:

for(var atr in usuario.direccion){

 console.log(atr);

}
Donde al ejecutarlo nos dará los atributos contenidos en nuestro objeto anidado:

 

Por último si queremos ser más directos y saber si algún atributo en especial existe por su identificador, podemos utilizar la función hasOwnProperty() la cual devolverá true o false en caso de existir o no:

var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxx.com',
			    edad: 36,
			    fechaRegistro: new Date(),
			    direccion: {
							   ciudad: 'Madrid',
							   pais: 'Spain' }
}

console.log(usuario.hasOwnProperty('nombre'));
console.log(usuario.hasOwnProperty('dni'));
console.log(usuario.hasOwnProperty('edad'));
console.log(usuario.hasOwnProperty('cargo'));
Veamos la respuesta por consola de nuestro ejemplo donde debemos obtener true para el primer y tercer atributo, y false para los dos restantes.

 

 


3. Editando los atributos


Muchas veces cuando manipulamos este tipo de objetos vamos a necesitar editar la información que contienen sus atributos más de una vez y trabajando con Node.js la tarea no puede ser más sencilla, ya que con solo la asignación de un nuevo valor al atributo podremos editar la información, veamos:
var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxx.com',
			    edad: 36,
			    fechaRegistro: new Date(),
			    direccion: {
							   ciudad: 'Madrid',
							   pais: 'Spain' }
}

usuario.email = 'otrocorreo@email.com';
usuario.edad = 18;
console.log(usuario);
Veamos como los atributos de nuestro objeto fueron sobre escritos de manera exitosa:

 

Adicional a editar la información de un atributo, podemos agregar un nuevo atributo a nuestro JSON, veamos como logramos esta operación:

var usuario = {
			    nombre: 'Solvetic Developer',
			    email: 'solvetic@xxxx.com',
			    edad: 36,
			    fechaRegistro: new Date(),
			    direccion: {
							   ciudad: 'Madrid',
							   pais: 'Spain' }
};

console.log(usuario);

usuario['cargo'] = 'Jefe de Redaccion';
console.log(usuario);
Si ejecutamos nuestro ejemplo, podremos ver nuestro objeto original y luego la inclusión de un nuevo atributo al final del mismo, facilitándonos la operación de agregar atributos a nuestro objeto sin mucho esfuerzo, veamos.

 


4. Editando los atributos


Hemos visto como crear un objeto JSON y como realizar su manejo de manera efectiva, pero podemos ir más allá y combinar este con la colección de Node.js, obteniendo un nuevo tipo de elemento, el array JSON que no es más que una colección de objetos JSON. Para ilustrar esto vamos a crear un objeto que llevará el registro de un usuario en relación a una serie de productos comprados, veamos:
var fecha = new Date();
var transacciones = {
 id : 1,
 usuario: 'Solvetic',
 fechaTran: fecha,
 detalles:[
  {
  			  codigo: 'p01',
  			  producto: 'PS4',
  			  precio: 350
  },
  {
  			  codigo: 'p02',
  			  producto: '3DS',
  			  precio: 199
  },
  {
  			  codigo: 'p03',
  			  producto: 'kindle',
  			  precio: 60
  }
  ]
}
Para acceder al mismo solo debemos usar console.log() con el nombre de nuestro nuevo objeto, veamos la respuesta de la consola.

 

Como vemos el orden de nuestra estructura es mucho más limpia y fácil de acceder para una cantidad de atributos mayor, incluso para el caso que tengamos una cantidad sumamente extensa, podemos recorrer nuestro array JSON y obtener sus parámetros de la siguiente forma:

for(var i=0;i<transacciones.detalles.length;i++){
 console.log('Codigo:' + transacciones.detalles[i].codigo);
 console.log('Producto:' + transacciones.detalles[i].producto);
 console.log('Precio:' +transacciones.detalles[i].precio); }
Para finalizar veamos la respuesta de la consola al ejecutar el ejemplo.

 

Hemos visto que el manejo de JSON con Node.js es tanto fácil como efectivo, ayudándonos de distintas funciones que el mismo posee y su manejo nativo hace que trabajar con este tipo de objetos sea una de las tareas más sencillas que nos podamos encontrar.


¿Te ayudó este Tutorial?


1 Comentarios

Genial explicación Solvetic.

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X