• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

300
Views
¿Cómo analizar múltiples archivos JSON en un mismo objeto Javascript?

Hay una carpeta con varios archivos JSON que están en el mismo formato JSON. Cada archivo contiene la siguiente información: nombre, apellido, cumpleaños, dirección y número de teléfono. Su tarea es leer todos los archivos y analizar los datos en el mismo objeto de persona. La tarea es enumerar todos los datos en cualquier formato de salida que elija, que también puede ser una consola.

Este es mi código en NodeJs

 import {readdir, readFile} from "fs"; const dir = "./src/json"; const dirAccess = readdir(`${dir}`, (err, files) => { files.forEach((file) => { const read = readFile(`${dir}/${file}`, "utf8", (err, data) => { let p = JSON.parse(data); console.log(p); }); }); });

Tengo mis datos en 'p', ahora mi pregunta es ¿Cómo puedo poner todos los datos JSON analizados en el mismo objeto de persona?

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

almost 3 years ago · Santiago Trujillo
2 answers
Answer question

0

Cree un objeto JSON fuera de la función forEach y concatene todo el JSON en ese único objeto.

 let jsonconcat = {}; //then in the loop you do jsonconcat = {...jsonconcat, p}

Luego puede guardarlo como un archivo o lo que quiera hacer con el objeto JSON.

Así que debería verse como:

 import {readdir, readFile} from "fs"; const dir = "./src/json"; let jsonconcat = {}; const dirAccess = readdir(`${dir}`, (err, files) => { files.forEach((file) => { const read = readFile(`${dir}/${file}`, "utf8", (err, data) => { let p = JSON.parse(data); jsonconcat = {...jsonconcat, p} console.log(p); }); }); });
almost 3 years ago · Santiago Trujillo Report

0

Encontré la respuesta aquí:

El retorno de la función JavaScript está vacío después de leer el archivo

¿Cómo hacer que fs.readFile async espere?

readdir y readFile son asíncronos, por lo que debe dejar que el código espere a que se complete el proceso.

 import fs, { readdir, readFile } from 'fs'; import path from 'path'; const dir = './src/json'; let jsonData = []; async function readingDirectory(directory) { const fileNames = await fs.promises.readdir(directory); for (let file of fileNames) { const absolutePath = path.join(directory, file); const data = await fs.promises.readFile(absolutePath); let p = JSON.parse(data); console.log(absolutePath, p); jsonData.push(p); } } readingDirectory(dir) .then(() => { console.log(jsonData); }) .catch((err) => { console.log(err); });

ingrese la descripción de la imagen aquí

almost 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error