我是nodejs的新手,现在我能够从数据库中获取数据并显示为具有键/值对的REST API。我的输出如下所示
[{"id":"793","actionname":"test_bsc_interface","actionid":"100"}].
但我需要格式化为
{ "header" : [id,actionname,actionid],
"values" : [793 ,test_bsc_interface,100] ],}.
我尝试使用JSON.stringfy
并检查了几个网站,但它无效。
任何人都可以通过我应该经历或接近的链接来帮助我。
答案 0 :(得分:2)
执行此操作的简便方法是使用underscore或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()而不是data [0],因为这将适用于具有多个项目的数组(来自查询的数组结果)。
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' ]
]
}