0

我将json2csvv5.0.6 用于一个小项目,我想使用自定义格式化程序格式化一些值,所以我得到一个干净的 CSV 文件。

但是,我似乎无法让格式化程序工作。我有一个number格式化程序和一个string应该在解析时调用的格式化程序。这是一个重现此行为的示例测试文件,带有两个简单的格式化程序:

// 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"|2

根据文档,以下应该可以工作,但不能。所以我可能做错了什么,但我一直没有弄清楚是什么。

4

1 回答 1

3

您必须使用 alpha 版本:json2csv@6.0.0-alpha.0

最后发布的版本与格式化程序有一些问题:https ://github.com/zemirco/json2csv/issues/521 (它们没有被导出)

而且您还必须调用格式化程序函数

const csvOpts = {
    delimiter: "|",
    formatters: {
        number: customNumberFormatter(),
        string: customStringFormatter(),
    },
}
于 2021-12-30T11:02:06.910 回答