Introducción
En este laboratorio, profundizaremos en el mundo de la programación de JavaScript y exploraremos el proceso de convertir datos JSON en formato CSV. A través de este laboratorio, aprenderá a usar métodos integrados como join(), map() y reduce() para convertir una matriz de objetos en una cadena que se pueda leer y manipular fácilmente en software de hojas de cálculo. Este laboratorio es ideal para aquellos que deseen comprender más profundamente la manipulación de datos en JavaScript.
Convertir JSON a CSV
Para convertir una matriz de objetos en una cadena de valores separados por comas (CSV) con columnas especificadas, use la siguiente función:
const JSONtoCSV = (arr, columns, delimiter = ",") =>
[
columns.join(delimiter),
...arr.map((obj) =>
columns.reduce(
(acc, key) =>
`${acc}${!acc.length ? "" : delimiter}"${!obj[key] ? "" : obj[key]}"`,
""
)
)
].join("\n");
Para usarlo, siga estos pasos:
- Abra la Terminal/SSH y escriba
nodepara comenzar a practicar la codificación. - Llame a la función
JSONtoCSVcon los siguientes argumentos:arr: una matriz de objetos a convertir.columns: una matriz de cadenas que especifican las columnas que se incluirán en la salida CSV.delimiter: una cadena opcional que especifica el delimitador que se usará (el valor predeterminado es',').
- La función devolverá una cadena CSV que contiene solo las columnas especificadas y los valores de los objetos.
- Si no se especifica un delimitador, se usará el delimitador predeterminado
','. - Se proporcionan ejemplos de cómo usar la función en el bloque de código siguiente.
JSONtoCSV(
[{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
["a", "b"]
); // 'a,b\n"1","2"\n"3","4"\n"6",""\n"","7"'
JSONtoCSV(
[{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
["a", "b"],
";"
); // 'a;b\n"1";"2"\n"3";"4"\n"6";""\n"";"7"'
Resumen
¡Felicidades! Has completado el laboratorio de convertir JSON a CSV. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.