如何格式化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' ] ] }