返回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 );