Estoy usando json2csv v5.0.6 para un proyecto pequeño y quería formatear algunos valores usando formateadores personalizados para obtener un archivo CSV limpio.
Sin embargo, parece que no puedo hacer que los formateadores funcionen. Tengo un formateador de number y un formateador string que se supone que deben ser llamados al analizar. Aquí hay un archivo de prueba de muestra que reproduce este comportamiento, con dos formateadores simples:
// test.js const json2csv = require("json2csv") const data = [{ name: "John", age: 20 }, { name: "Jessica", age: 32 }] const customNumberFormatter = () => { return (value) => { return "0" } } const customStringFormatter = () => { return (value) => { return value[0] } } const csvOpts = { delimiter: "|", formatters: { number: customNumberFormatter, string: customStringFormatter, }, } const parser = new json2csv.Parser(csvOpts) const csv = parser.parse(data) console.log(csv) // console output "name"|"age" "John"|20 "Jessica"|32 // expected output "name"|"age" "J"|0 "J"|2Según la documentación , lo siguiente debería funcionar, pero no es así. Así que probablemente estoy haciendo algo mal, pero no he sido para averiguar qué.
Tienes que usar la versión alfa: json2csv@6.0.0-alpha.0
La última versión publicada tiene algún problema con los formateadores: https://github.com/zemirco/json2csv/issues/521 (no se exportan)
Y también tienes que llamar a las funciones de tus formateadores
const csvOpts = { delimiter: "|", formatters: { number: customNumberFormatter(), string: customStringFormatter(), }, }