我正在尝试使用标头导出csv,但条件是我有3个json。所有3 json都在同一个csv文件中下载。现在我想通过在csv文件中包含标题来区分这些json。我有一个JSON,如:
"data": {
"subData": [
[
{
"ABC": "North America",
"EFD": 937,
"EFDPercentage": 66.5483,
},
{
"ABC": "Europe",
"EFD": 123,
"EFDPercentage": 8.7358,
}
],
[
{
"PQR": "Media and Entertainment",
"topPQR": 174,
"PQRPercentage": 12.358,
},
{
"PQR": "Sep 2016",
"topPQR": 82,
"PQRPercentage": 5.8239,
},
{
"PQR": "Conference",
"topPQR": 50,
"PQRPercentage": 3.5511,
}
],
[
{
"XYZ": "M&E",
"topXYZ": 279,
"XYZPercentage": 19.8153,
},
{
"XYZ": "Technology",
"topXYZ": 197,
"XYZPercentage": 13.9915,
},
{
"XYZ": "Online Retail",
"topXYZ": 163,
"XYZPercentage": 11.5767,
}
]
]
}
我们知道ng-csv属性只接受一个json对象。因此我通过这样做将3个对象连接成一个大对象:
$scope.subDataArr = [];
$scope.subData = response.data.subData;
for(var i=0; i<self.subData.length; i++){
for(var j=0; j<self.subData[i].length; j++){
self.subDataArr.push(self.subData[i][j]);
}
}
以上所有数据都以JSON对象格式合并到subDataArr中。通过访问此对象,我可以将所有数据下载到CSV文件中,但我想通过在csv文件中提供标题来区分这些数据。我知道我们正在使用csv-header在csv文件中给出标题。但在这里他们是3个不同的标题列表。那么如何使用3个不同的标题及其各自的数据呢? 请分享您的想法。提前致谢。
答案 0 :(得分:0)
我解决了这个问题。我创建了具有标题名称的新对象并推入我们下载的主json对象。像这样:
$scope.subDataArr = [];
$scope.subData = response.data.subData;
for(var i=0; i<self.subData.length; i++){
if(i===0){
self.Header1 = {
"ABC": "ABC",
"EFD": "EFD",
"EFDPercentage": "EFDPercentage"
};
self.subDataArr.push(self.Header1);
}
if(i===1){
self.Header2 = {
"PQR": "PQR",
"topPQR": "topPQR",
"PQRPercentage": "PQRPercentage"
};
self.subDataArr.push(self.Header2);
}
if(i===2){
self.Header3 = {
"XYZ": "XYZ",
"topXYZ": "topXYZ",
"XYZPercentage": "XYZPercentage"
};
self.subDataArr.push(self.Header3);
}
for(var j=0; j<self.subData[i].length; j++){
self.subDataArr.push(self.subData[i][j]);
}
}
所以带有标题的所有数据都进入主JSON,我得到预期的输出: - )