如何在 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(),
},
}
我正在为一个小项目使用 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(),
},
}