[英]Convert array of Json to Arrays in Javascript
我想從下面的Json數據數組生成一個csv。
var keyDistribution = [
[
{
"port": 4444,
"ipAddress": "52.35.15.121",
"noOfKeys": 1
},
{
"port": 2222,
"ipAddress": "52.35.15.121",
"noOfKeys": 1
},
{
"port": 3333,
"ipAddress": "52.35.15.121",
"noOfKeys": 0
}
]
];
我該如何實現?
我知道如何從數組生成CSV,如下所示:
var data = [["name1", "city1", "some other info"], ["name2", "city2", "more info"]];
var csvContent = "data:text/csv;charset=utf-8,";
keyDistribution.forEach(function(infoArray, index){
dataString = infoArray.join(",");
csvContent += index < data.length ? dataString+ "\n" : dataString;
});
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "my_data.csv");
link.click();
但是有人可以幫幫我如何從Json數據數組 ( keyDistribution
變量) 生成此數據嗎?
我想要格式輸出:
[["port": 4444, "ipAddress": "52.35.15.121","noOfKeys": 1], ["port": 2222, "ipAddress": "52.35.15.121", "noOfKeys": 1]...];
您所需要做的就是遍歷此對象數組,如下所示:
var csvContent = "data:text/csv;charset=utf-8,";
// Iterating through 0th index element as it contains all the objects
keyDistribution[0].forEach(function (infoArray, index) {
// Fetching all keys of a single object
var _keys = Object.keys(infoArray);
var dataString = [];
if(index==0){
[].forEach.call(_keys, function(inst, i){
dataString.push(inst);
});
dataString = dataString.join(",");
csvContent += index < keyDistribution[0].length ? dataString + "\n" : dataString;
dataString = [];
}
[].forEach.call(_keys, function(inst, i){
dataString.push(infoArray[inst]);
});
// From here the code is same.
dataString = dataString.join(",");
csvContent += index < keyDistribution[0].length ? dataString + "\n" : dataString;
});
var encodedUri = encodeURI(csvContent);
window.open(encodedUri);
var encodedUri = encodeURI(csvContent);
var link = document.createElement("a");
link.setAttribute("href", encodedUri);
link.setAttribute("download", "my_data.csv");
link.click();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.