【问题标题】:Convert json to csv with seperate headers for each key of JSON object将 json 转换为 csv,并为 JSON 对象的每个键使用单独的标头
【发布时间】:2021-12-28 13:33:04
【问题描述】:

假设我需要转换的 JSON 对象看起来像这样,有没有办法可以将其转换为遵循下图中指定格式的 csv 文件:

const inputData = {
   keyOne: [{
    keyOneColOne: 1345,
    keyOneColTwo: 546,
    keyOneColThree: 769
  }],
  keyTwo: [
    {
      keyTwoColOne: 1,
      keyTwoColTwo: 2,
      keyTwoColThree: 2,
      keyTwoColFour: 1
    },
    {
      keyTwoColOne: 1,
      keyTwoColTwo: 2,
      keyTwoColThree: 2,
      keyTwoColFour: 1
    }
  ],
  keyThree: [
    {
      keyThreeColOne: 22,
      keyThreeColTwo: 23,
      keyThreeColThree: 24,
      keyThreeColFour: 25
    },
    {
      keyThreeColOne: 22,
      keyThreeColTwo: 23,
      keyThreeColThree: 24,
      keyThreeColFour: 25
    }
  ]
}

那么有没有办法以下面给出的格式生成输出(在 Node-express 中),

【问题讨论】:

    标签: node.js json express csv


    【解决方案1】:

    你可以使用这个包:https://www.npmjs.com/package/json2csv

    这为您提供了一个返回字符串的方法 (parseAsync)

    const { parseAsync } = require('json2csv');
    
    ....
    
    let csvString = await parseAsnyc(myJson);
    
    

    由于您想通过 csv 文件中的键分隔 json,您可以单独解析 json 的每个部分,然后将其添加到 csv 字符串中。

    例如:

    const { parseAsync } = require('json2csv');
    
    ...
    
    async function parseMyData(inputData) {
          let csv = "";
          
          // for every object in 'inputData' array, we'll parse and add to csv string and add line breaks
          for (const key of inputData) {
             csv += await parseAsync(key);
             csv += "\n\n"; // add line breaks
          }
    
          return csv;   
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 2020-12-29
      • 2014-12-24
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多