簡體   English   中英

將Json數組轉換為Javascript中的數組

[英]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]...];

編輯我只想要標題中的標題。 CSV快照

您所需要做的就是遍歷此對象數組,如下所示:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM