Estoy tratando de formatear mi archivo json en un archivo csv para poder usarlo en Hojas de cálculo de Google. Hasta ahora lo había logrado. Pero mi objeto de información personal está en una celda en Google Sheets y no está separado en dos celdas.
Aquí está el archivo json, que es una matriz de objetos:
[{ "email": "abc@gmail.com", "phone": "000 000 000", "personalInfo": { "firstName": "John", "lastName": "doe" } } ]Aquí está mi código:
const fs = require("fs"); const { Parser } = require('json2csv'); const fields = ['email', 'phone', 'personalInfo']; const opts = { fields }; const parser = new Parser(opts); const csv = parser.parse(new_arr); fs.writeFile('file.csv', csv, function(err) { if (err) throw err; console.log('file saved'); });Traté de agregar 'nombre' y 'apellido' en mis campos constantes, pero solo agrega el nombre del título a la columna y el objeto 'información personal' todavía está en una celda (que no es una celda para 'nombre' y 'apellido')
Debe especificar la ruta correctamente.
es decir
const fs = require("fs"); const { Parser } = require('json2csv'); const fields = ['email', 'phone', 'personalInfo.firstName', 'personalInfo.lastName']; const opts = { fields }; const parser = new Parser(opts); const csv = parser.parse(new_arr); fs.writeFile('file.csv', csv, function(err) { if (err) throw err; console.log('file saved'); }); Desde los documentos también puedes usar flatten :
// Default flatten(); // Custom separator '__' flatten({ separator: '_' }); // Flatten only arrays flatten({ objects: false, arrays: true });