如何将json数据转换为表

时间:2019-04-17 15:07:56

标签: javascript json excel parsing etl

我有以下api调用,它们以JSON返回数据:

cd /D "%~dp0"
cd "..\\apache-tomcat\\bin"
call shutdown.bat

返回如下数据:

https://xama-was-service.herokuapp.com/api/socialone/databoards/10042?1=2019-02-01T00:00:00.000Z&2=test

我想将其移动到excel中并同时使用power bi,但是我无法将其转换为表格?

任何人都可以建议如何将返回的数据格式化为表格,或在原始调用中使用哪些代码来帮助解决此问题?

理想的最终产品如下所示,但不确定如何实现?

enter image description here

谢谢。

1 个答案:

答案 0 :(得分:1)

这会将您的数据解析为逗号分隔的字符串(CSV)。

您只需要用逗号,分隔每行元素,并用换行符\n分隔每一行。 Excel知道这种格式,尽管有时您可能需要使用“文本转列”功能让它知道数据是逗号分隔的。

const data = [

    [

        {

            "Empid": 2326,

            "Empname": "Sam Smith",

            "AbsenceId": 12840,

            "Comment": "a001t000004FQgHAAW",

            "AbsenceStartDate": "2019-05-31T00:00:00.000Z",

            "AbsenceEndDate": "2019-05-31T00:00:00.000Z",

            "JobId": 400004,

            "AbsenceRequestId": ""

        },

        {

            "Empid": 3387,

            "Empname": "Joe bloggs",

            "AbsenceId": 12842,

            "Comment": "a001t000004FK67AAG",

            "AbsenceStartDate": "2019-06-06T00:00:00.000Z",

            "AbsenceEndDate": "2019-06-10T00:00:00.000Z",

            "JobId": 700004,

            "AbsenceRequestId": ""

       }

    ]

]



window.generateCSV = function () {
  let CSVData = ''
  // set the column names
  for (const value of Object.keys(data[0][0])) {
    CSVData = CSVData.concat(value + ',')
  }
  CSVData = CSVData.slice(0, CSVData.length - 1)
  CSVData = CSVData.concat('\n')
  
  // parse the data
	for (const tbl of data) {
		for (const row of tbl) {
			for (const value of Object.values(row)) {
      	CSVData = CSVData.concat(value + ',')
      }
      CSVData = CSVData.slice(0, CSVData.length - 2)
      CSVData = CSVData.concat('\n')
    }
  }
  document.getElementById("csvdata").innerText = CSVData

}
<input type="button" value="generateCSV" onclick="generateCSV()">

<div id="csvdata">

</div>

通过记事本将输出字符串保存为.txt或.csv之后,我可以在excel中打开以获取此信息。

enter image description here