返回JSON与嵌套数组的数据和标题在NodeJS express

我有一个Node.js API返回JSON格式如下:

[ { "id" : "1", "tstamp": "2017-06-01T00:00:00.000Z", "dmemberprofiles","48400" "dgroupprofiles","4800" "msclprofiles","400" }, { "id" : "2", "tstamp" : "2017-06-02T00:00:00.000Z", "dmemberprofiles","48700" "dgroupprofiles","4900" "msclprofiles","410 } ] 

如何让Node.js返回JSON,如下所示:

 { "header": [ "id", "tstamp", "dmemberprofiles", "dgroupprofiles", "msclprofiles" ], "data": [ { "id" : "1", "tstamp" : "2017-06-01T00:00:00.000Z", "dmemberprofiles","48400" "dgroupprofiles","4800" "msclprofiles","400" }, { "id" : "2", "tstamp" : "2017-06-02T00:00:00.000Z", "dmemberprofiles","48700" "dgroupprofiles","4900" "msclprofiles","410 } ] } 

我已经四处寻找其他的例子,但没有find一个Node.js特定的解决scheme。

您可以使用Object.keys从数组的第一个对象中获取键。

 var array = [{ id: "1", tstamp: "2017-06-01T00:00:00.000Z", dmemberprofiles: 48400, dgroupprofiles: 4800, msclprofiles: 400 }, { id: "2", tstamp: "2017-06-02T00:00:00.000Z", dmemberprofiles: 48700, dgroupprofiles: 4900, msclprofiles: 410 }], object = { header: Object.keys(array[0]), data: array }; console.log(object); 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

假设

 var data = [ { "id" : "1", "tstamp": "2017-06-01T00:00:00.000Z", "dmemberprofiles","48400" "dgroupprofiles","4800" "msclprofiles","400" }, { "id" : "2", "tstamp" : "2017-06-02T00:00:00.000Z", "dmemberprofiles","48700" "dgroupprofiles","4900" "msclprofiles","410 } ] 

那么就做:

 // Add data to wrapper var wrapper = { "header": [ "id", "tstamp", "dmemberprofiles", "dgroupprofiles", "msclprofiles" ], "data": data } // Convert to JSON var json = JSON.stringify( wrapper );