-1
我使用'json-csv'库从嵌套对象和数组的用户数组创建csv。对象json中的嵌套数组到csv
var users = [
{
subscriptions: [
{
package : {
name: 'Grammar'
},
state: 'EXPIRED',
timerange: {
period : 5550
},
transaction:{
amount: 10000
}
},
{
package : {
name: 'GK'
},
state: 'ACTIVE',
timerange: {
period : 30
},
transaction:{
amount: 10340
}
},
],
account:{
balance: 200
},
name: "Johhy Moe",
email: null,
user_id: "123456789",
username: null,
user_type: "facebook",
id: 3,
createdAt: "2016-07-11T08:02:40.000Z",
updatedAt: "2016-07-11T08:02:40.000Z",
},
{
subscriptions: [
{
package : {
name: 'GK'
},
state: 'EXPIRED',
timerange: {
period : 42
},
transaction:{
amount: 5252
}
},
{
package : {
name: 'MATH'
},
state: 'ACTIVE',
timerange: {
period : 25
},
transaction:{
amount: 200
}
}
],
account:{
balance: 1500
},
name: "John Doe",
email: null,
user_id: "123456789",
username: null,
user_type: "facebook",
id: 7,
createdAt: "2016-07-29T06:44:18.000Z",
updatedAt: "2016-07-29T06:44:18.000Z"
},
]
现在我想生成的CSV是这样 USERID,NAME,FBID,ACCOUNT,订阅,价格,州TIMEPERIOD
3,Johhy萌,123456789,200,语法,10000,过期,5550
3,Johhy萌,123456789,200,GK,10340,ACTIVE,30
7,John Doe的,123456789,1500,GK,5252,已过期,30
7,约翰DOE,12345 6789,1500,MATH,200,ACTIVE,25
正如您看到的,如果每个用户的订阅阵列中有两个对象,我希望再次重复该用户,但具有不同的订阅数据。
我想过使用库,因为我的用户数组可以达到成千上万的订阅数以千计的用户。
而且我不知道该怎么做。 我的代码:
var options= {
fields : [
{
name : 'id',
label : 'USERID'
},
{
name : 'name',
label : 'Name'
},
{
name : 'user_id',
label : 'FBID'
},
{
name : 'account.balance',
label : 'ACCOUNT'
},
{
name: '',
label: 'Subscription'
}
]
}
var source = es.readArray(users)
source
.pipe(jsoncsv.csv(options))
.pipe(res)
我不想使用库也。所以如果有人能够提供给我一个资源来创建我自己的带有字符串的csv文件并且也使用流,那将会很棒。谢谢!!
将这种用于数千用户的数组是否有效?在这个例子中,你只是将它记录到控制台,但我需要发送整个数据作为响应。 –
如果你不需要结果是为了用户在阵列中出现,那么我可以改变它非常非常有效... –
改变了答案...现在检查@ amit-adhikari –