如何在 javascript 中使用 json2csv 格式化值?

How to format values using json2csv in javascript?

我正在为一个小项目使用 json2csv v5.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

根据 documentation,以下应该有效,但实际上无效。所以我可能做错了什么,但我还没有弄清楚是什么。

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

最后发布的版本在格式化程序方面存在一些问题:https://github.com/zemirco/json2csv/issues/521(它们未导出)

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

const csvOpts = {
    delimiter: "|",
    formatters: {
        number: customNumberFormatter(),
        string: customStringFormatter(),
    },
}