如何格式化JSON对象键/值对

我是nodejs的新手,现在我可以从数据库中获取数据,并显示为REST API,它是键/值对。 我的输出如下所示

[{"id":"793","actionname":"test_bsc_interface","actionid":"100"}]. 

但是我需要格式化为

 { "header" : [id,actionname,actionid], "values" : [793 ,test_bsc_interface,100] ],}. 

我试着用JSON.stringfy和检查几个网站,但它不工作。

任何人都可以帮助我通过哪一个环节,我应该通过或接近。

简单的方法是使用下划线或lodash模块进行格式化:

 var _ = require('lodash'); var data = [{"id":"793","actionname":"test_bsc_interface","actionid":"100"}]; var result = _.map(data, function(o) { return {headers: _.keys(o), values : _.values(o)} }); console.dir(result); 

输出是:

 [ { headers: [ 'id', 'actionname', 'actionid' ], values: [ '793', 'test_bsc_interface', '100' ] } ] 

为了得到你想要的结果,只要做结果[0]

请注意,我使用_.map()而不是数据[0],因为这将适用于具有多个项目的数组(查询的数组结果)。

根据您的评论修改答案(1个标题行和数组中的所有值行):

 var _ = require('lodash'); var data = [ { id: '714', actionname: 'test_bsc_interface', actionid: '100' }, { id: '715', actionname: 'list_all_available_interfaces', actionid: '103' }, { id: '716', actionname: 'check_tt', actionid: '101' } ]; var result; if (_.size(data) > 0) { result = { headers: _.keys(data[0]), values: _.map(data, function(o) { return _.values(o); }) }; } console.dir(result); 

输出是:

 { headers: [ 'id', 'actionname', 'actionid' ], values: [ [ '714', 'test_bsc_interface', '100' ], [ '715', 'list_all_available_interfaces', '103' ], [ '716', 'check_tt', '101' ] ] }