【发布时间】:2020-08-06 07:34:27
【问题描述】:
我有一个对象数组(arr),其中每个对象看起来像这样:-
{
"name" : "someName",
"address" : "someAddress",
"attributes" : [
{
"attName" : "Sea",
},
{
"attName" : "Beach",
}
],
"values" : [
"2540",
"3345",
"2340"
]
}
数组“values”和“attributes”对于不同的对象可能有不同数量的元素。
现在,当我使用以下代码将此对象数组转换为 csv 时:
const json2csv = require('json2csv').parse;
const csvString = json2csv(arr);
我得到以下输出:
name, address, attributes, values
"someName","someAddress", [{"attName" : "Sea"},{"attName" : "Beach"}], ["2540", "3345", "2340"]
但是,我希望我的 csv 是这样的:
name, address, attName, attName, value, value, value
"someName","someAddress", "Sea", "Beach", "2540", "3345", "2340"
我知道 JSON 不允许多个具有相同名称的键,但我不知道如何实现这一点。
【问题讨论】:
-
您需要将对象展平以仅包含单个属性,例如 { name, address, attribute1, attribute2, value1, value 2, value 3} 属性名称应该是唯一的,因此您不能拥有csv 标头为 attName attName,它将来自 object 并且 object 应该具有唯一的属性。
-
或者您需要将值属性转换为单个字符串而不是数组。
标签: javascript node.js json2csv