簡體   English   中英

將 CSV 轉換為 JSON,包括嵌套的對象數組

[英]Convert CSV to JSON including nested arrays of objects

在 Excel 中,我創建了一個電子表格,我想將它轉換為我的 VS Code 項目的 JSON。 我目前只是使用在線 CSV 到 JSON 轉換器https://www.convertcsv.com/csv-to-json.htm ,但是我的問題是我似乎無法找到一種方法來格式化它以便它使用對象數組。 例如

"arr": [
    {"id":1, "name": "obj1"},
    {"id":2, "name": "obj2"},
]

如果我像這樣在 Excel 中格式化: 在此處輸入圖像描述

輸出如下所示:

[
 {
   "arr": {
      "id": [
         1,
         2
      ],
      "name": [
         "obj1",
         "obj2"
      ]
   }
}
]

有誰知道如何在 Excel 中格式化以獲得所需的對象數組? 否則有人可以為我指出正確的方向來正確轉換它的腳本嗎? 謝謝!

編輯要補充以上內容,我應該更清楚。 我知道 Excel 電子表格中的初始行在解析為 JSON 時將轉換為對象,但我想要實現的是轉換為帶有嵌套數組的 JSON。 因此,例如我想要的輸出是:

"arr":[
     {
       "id": 1, 
       "objects":[
          {"id": 1, "name": "obj1"}
          {"id": 2, "name": "obj2"}
       ]
     }
     {
       "id": 2, 
       "objects":[
          {"id": 1, "name": "obj1"}
       ]
     }
]

例如,給定以下 CSV 數據:

  id,name
  1,foo
  2,bar

您可以按如下方式對其進行解析,其中csv是包含 CSV 數據的字符串:

  // split whole CSV into separated lines
  const lines = csv.split("\n");
  
  // split the first line to get properties count and names
  const keys = lines[0].split(",");
  
  const array = [];
  
  // iterate over the rest of lines, notice we start at 1
  for(let i = 1 ; i < lines.length; ++i) {
    
    // split line to get values
    const values = lines[i].split(",");
    
    // create new object
    const dict = {};
    
    // fill object with keys and values
    for(let k = 0; k < keys.length; ++k) {
      dict[keys[k]] = values[k];
    }
    
    // add object to array
    array.push(dict);
  }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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