我正在尝试将json文件格式化为csv文件,以便在Google Sheets中使用它。到目前为止,我已经成功了。但我的个性化信息的对象是在谷歌表单的一个单元格中,而不是分开在两个单元格中。
这里是json文件,它是一个对象数组:
[{
"email": "abc@gmail.com",
"phone": "000 000 000",
"personalInfo":
{
"firstName": "John",
"lastName": "doe"
}
}
]
这是我的代码:
const fs = require("fs");
const { Parser } = require('json2csv');
const fields = ['email', 'phone', 'personalInfo'];
const opts = { fields };
const parser = new Parser(opts);
const csv = parser.parse(new_arr);
fs.writeFile('file.csv', csv, function(err) {
if (err) throw err;
console.log('file saved');
});
我试图在常量字段中添加"firstName"one_answers"lastName",但它只将标题名称添加到列中,并且对象"personalInfo"仍在一个单元格中(不是"firstName"one_answers"lastName"的一个单元格(
您需要正确指定路径。
即
const fs = require("fs");
const { Parser } = require('json2csv');
const fields = ['email', 'phone', 'personalInfo.firstName', 'personalInfo.lastName'];
const opts = { fields };
const parser = new Parser(opts);
const csv = parser.parse(new_arr);
fs.writeFile('file.csv', csv, function(err) {
if (err) throw err;
console.log('file saved');
});
从文档中,您也可以使用flatten
:
// Default
flatten();
// Custom separator '__'
flatten({ separator: '_' });
// Flatten only arrays
flatten({ objects: false, arrays: true });