用于嵌套对象的json2csv和fs模块



我正在尝试将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 });

最新更新