Saltar al contenido
Portada » Cómo escribir un archivo JSON en JavaScript

Cómo escribir un archivo JSON en JavaScript

Escribir archivos JSON en JavaScript es una habilidad útil cuando necesitas guardar datos estructurados. En este artículo, te mostraremos cómo hacerlo de manera sencilla.

1. Convertir datos a JSON

Antes de escribir un archivo JSON, necesitas convertir tus datos a formato JSON. Puedes usar el método JSON.stringify() para lograr esto.


const data = {
    name: "John",
    age: 30,
    city: "New York"
};

const jsonData = JSON.stringify(data, null, 2);
console.log(jsonData);

En este ejemplo, convertimos un objeto JavaScript a una cadena JSON.

2. Crear un archivo JSON en el navegador

Para crear un archivo JSON en el navegador, puedes usar el objeto Blob y URL.createObjectURL. Esto te permite generar un enlace para descargar el archivo.


const blob = new Blob([jsonData], { type: "application/json" });
const url = URL.createObjectURL(blob);

const a = document.createElement('a');
a.href = url;
a.download = 'data.json';
a.click();

URL.revokeObjectURL(url);

Este código crea un Blob con los datos JSON, genera una URL de descarga y simula un clic en un enlace para descargar el archivo.

3. Escribir un archivo JSON en Node.js

Si estás trabajando en un entorno Node.js, puedes usar el módulo fs para escribir archivos. Aquí te mostramos cómo hacerlo:


const fs = require('fs');

fs.writeFile('data.json', jsonData, (err) => {
    if (err) {
        console.error('Error writing file', err);
    } else {
        console.log('File has been written');
    }
});

En este ejemplo, utilizamos fs.writeFile para escribir los datos JSON en un archivo llamado data.json.

Conclusión

Escribir archivos JSON en JavaScript es sencillo tanto en el navegador como en Node.js. Puedes convertir tus datos a JSON con JSON.stringify() y luego utilizar Blob y URL.createObjectURL en el navegador, o el módulo fs en Node.js para guardar los datos en un archivo.

Etiquetas:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *