【发布时间】:2021-08-29 18:41:29
【问题描述】:
我有一个 Node JS 和 Typescript 项目,我目前从 API 接收 JSON,并使用 json-2-csv 模块将其转换为行数限制的 CSV 格式。我已经读到papaparse 模块对于这些事情非常快,我想知道它是如何工作的,但我不能用它来将JSON 从api 转换。
这是我给json-2-csv打的电话:
await this.csvConverter.jsonToCsv(converterUtils, nameFile, this.dir);
这是处理转换的class:
export class csvConverter {
public async jsonToCsv (csv: any, nameFile: string, dir: string):Promise <number> {
const max: number = new constUtils().maxRecords;
const headers = csv.split('\n').slice(0, 1);
const records = csv.split('\n').slice(0,);
for (let i = 1; i < records.length; i = i + max) {
let dataOut = headers.concat(records.slice(i, i + max)).join('\n');
let id = Math.floor(i / max) + 1;
fs.writeFileSync(`${dir}/${nameFile}.${id}.csv`, dataOut);
}
return Promise.resolve(csv);
};
}
我的问题是我不能对 papaparse 做同样的事情,我查看了文档,但我可以从本地文件转换 JSON,但我无法从 API 获取它。
【问题讨论】:
-
(1) 使用您喜欢的 fetch 库从 API 获取 JSON (2) 将 JSON 解析为对象 (
JSON.parse()) (3) 调用Papa.unparse(yourData)? -
(ps.:没有理由为单个函数创建一个类,同样
new constUtils().maxRecords应该只是一个consts.maxRecords。) -
@AKX 是的,我可以在相同的功能中使用它。从转换中我了解了整个过程是如何工作的,我的问题是在这种情况下我不能使用 Papaparse 将 JSON 从 api 转换为 CSV。
converterUtils变量是包含数据的变量。 -
为什么你不能?你试过什么?正如我的第一条评论所说:获取数据,从 JSON 中解析,然后将其传递给 Papa。
-
@AKX 这些是我用来调用的变量:
let api = req.query.api;/let url = this.constUt.conf.API_MOCS [`$ {api}`] .url/let json = await axios.get (url);/Papa.unparse (json);。在这种情况下,站起来什么都不做。
标签: node.js json typescript papaparse json2csv