【发布时间】:2015-02-05 22:37:26
【问题描述】:
在我的 node.js 应用程序中,我从 mongodb 服务器检索值并希望将它们转换为 CSV 文件。父元素很容易从数据库中访问并显示在 CSV 文件中,但子元素不显示并且可以无法访问..
JSON 结构:
"name" : "fhj",
"age" : "23",
"gender" : "female",
"sec" : "b",
"username" : "9886666",
"language" : "HINDI",
"method" : "method2",
"timeSlot" : {
"id" : 2,
"fromTime" : 12,
"toTime" : 15
}
我的代码:
db.users.find(function(err,values){
if(err||!values.length)
console.log("ERROR !!!!");
else
{
var i=1;
str='[';
values.forEach(function(user){
if(i==values.length)
str=str+'{ "name" : "' + user.username + '","age" : "'+ user.age +'","gender":"'+user.gender+'","sec":"'+user.sec+'","username":"'+user.username+'","language":"'+user.language+'","method":"'+user.method+'","Timeslot":"'+user.timeslot+'"}';
else{
str = str + '{ "name" : "' + user.username + '","age" : "'+ user.age +'","gender":"'+user.gender+'","sec":"'+user.sec+'","username":"'+user.username+'","language":"'+user.language+'","method":"'+user.method+'","Timeslot":"'+user.timeslot+'"},' +'\n';
i++;
}
});
str = str.trim();
str = str + ']';
var obj=JSON.parse(str);
json2csv({data: obj, fields: ['name', 'age','gender','sec','username','language','method','Timeslot']}, function(err, csv) {
if (err)
console.log(err);
fs.writeFile('./files/user.csv', csv, function(err) {
if (err)
throw err;
console.log('File saved');
});
});
}
});
除了timeslot的子元素外,所有的值都会显示出来。 如何从数据库中访问 JSON 的子元素并在 CSV 文件中显示所有值???
【问题讨论】:
-
能否提供创建的user.csv文件。我遇到了与 json2csv 模块类似的问题。对于内部嵌套对象/数组,它不支持复杂结构。
-
@SaleemAhmed 你必须手动为嵌套的 json 创建 csv。