Trabajo con JSON en JavaScript: análisis y serialización en la práctica
JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos, ampliamente utilizado en aplicaciones web modernas. En JavaScript, el trabajo con JSON está integrado a nivel de lenguaje, lo que lo convierte en una herramienta ideal para el intercambio de datos entre cliente y servidor, así como para el almacenamiento de configuraciones. En este artículo, analizaremos cómo analizar y serializar JSON en el entorno Node.js, veremos ejemplos prácticos y las mejores prácticas.
¿Qué es JSON y para qué sirve?
JSON es un formato de texto basado en la sintaxis de objetos de JavaScript. Soporta los siguientes tipos de datos:
- Cadenas (entre comillas dobles)
- Números (enteros y de punto flotante)
- Valores booleanos (true/false)
- Arreglos
- Objetos
- null
JSON se utiliza en todas partes: desde solicitudes API hasta archivos de configuración (por ejemplo, package.json). En Node.js, JSON es el formato principal para el intercambio de datos entre microservicios.
Análisis de JSON: convertir una cadena en un objeto
Para convertir una cadena JSON en un objeto de JavaScript se utiliza el método JSON.parse(). Veamos un ejemplo básico:
const jsonString = '{"name": "Ana", "age": 30, "isStudent": false}';const user = JSON.parse(jsonString);
console.log(user.name); // "Ana"console.log(user.age); // 30console.log(user.isStudent); // falseImportante: La cadena JSON debe tener un formato estricto. Todas las claves y valores de cadena deben estar entre comillas dobles. Las comillas simples o las comas finales causarán un error.
Manejo de errores durante el análisis
Al trabajar con datos externos (de archivos, API), siempre existe el riesgo de obtener un JSON incorrecto. Utilice try...catch:
const fs = require('fs');
try { const data = fs.readFileSync('data.json', 'utf8'); const parsed = JSON.parse(data); console.log('Analizado exitosamente:', parsed);} catch (error) { if (error instanceof SyntaxError) { console.error('Error de sintaxis JSON:', error.message); } else { console.error('Error al leer el archivo:', error.message); }}Análisis con función reviver
El método JSON.parse() acepta un segundo argumento: una función que puede transformar los valores. Esto es útil, por ejemplo, para convertir cadenas de fecha en objetos Date:
const json = '{"name": "Iván", "birthDate": "1990-05-15T00:00:00Z"}';const user = JSON.parse(json, (key, value) => { if (key === 'birthDate') { return new Date(value); } return value;});
console.log(user.birthDate instanceof Date); // trueconsole.log(user.birthDate.getFullYear()); // 1990Serialización JSON: convertir un objeto en una cadena
El proceso inverso (convertir un objeto de JavaScript en una cadena JSON) se realiza con JSON.stringify().
const user = { name: 'María', age: 25, skills: ['JavaScript', 'Node.js', 'Python'], isActive: true};
const jsonString = JSON.stringify(user);console.log(jsonString);// {"name":"María","age":25,"skills":["JavaScript","Node.js","Python"],"isActive":true}Formateo de la salida
Para mejorar la legibilidad, se pueden agregar sangrías:
const prettyJson = JSON.stringify(user, null, 2);console.log(prettyJson);/*{ "name": "María", "age": 25, "skills": [ "JavaScript", "Node.js", "Python" ], "isActive": true}*/Filtrado y reemplazo de valores
El segundo argumento de JSON.stringify() puede ser un arreglo de claves (para filtrar) o una función de reemplazo:
Blogs
Book Recommendations
Leer también
¿Qué es una runa en Go? Comparación de enfoques y ejemplos reales
Feature flags en C++: gestión de funcionalidades sin dolor ni recompilación
Patrones de diseño en Rust con ejemplos de código
Algoritmos y estructuras de datos en Go: guía práctica
WebSocket en Go: aplicaciones en tiempo real de la A a la Z