如何格式化JSON对象键/值对
我是nodejs的新手,现在我能够从数据库中获取数据并显示为键/值对的restapi。我的输出如下所示如何格式化JSON对象键/值对,json,node.js,Json,Node.js,我是nodejs的新手,现在我能够从数据库中获取数据并显示为键/值对的restapi。我的输出如下所示 [{"id":"793","actionname":"test_bsc_interface","actionid":"100"}]. 但我需要格式化为 { "header" : [id,actionname,actionid], "values" : [793 ,test_bsc_interface,100] ],}. 我尝试了JSON.stringfy,并查看了一些网站,但它不起作
[{"id":"793","actionname":"test_bsc_interface","actionid":"100"}].
但我需要格式化为
{ "header" : [id,actionname,actionid],
"values" : [793 ,test_bsc_interface,100] ],}.
我尝试了JSON.stringfy
,并查看了一些网站,但它不起作用
任何人都可以帮助我通过哪个链接或接近哪个链接。简单的方法是使用或模块对其进行格式化:
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]
请注意,我使用了u.map()而不是数据[0],因为这将适用于包含多个项的数组(查询的数组结果)
根据您的评论修改答案(1个标题行和数组中的所有值行):
输出为:
{
headers: [ 'id', 'actionname', 'actionid' ],
values: [
[ '714', 'test_bsc_interface', '100' ],
[ '715', 'list_all_available_interfaces', '103' ],
[ '716', 'check_tt', '101' ]
]
}
我只想补充一点,在node的较新版本(我认为是0.12)中,这些ES6功能已经实现了,应该是开箱即用的(但是语法有点不同)。现在我可以获取并分析结果,如下所示谢谢!!但是我得到了json输出数组“{headers:['id'、'actionname'、'actionid']、value:['793'、'test\u bsc\u interface'、'100']}、headers:['id'、'actionname'、'actionid']、value:['765'、'test']},我反复使用了{.each并尝试获取键[0].您能告诉我我必须使用哪个库吗Hi Shilpa,我不确定您的意思,您能澄清一下吗?请指定您想要的输入数据和所需的输出。获取数据并作为REST API公开后的Json输出,如图所示:“[{id:'714',actionname:'test_bsc_interface',actionid:'100'},{id:'715',actionname:'list_all_available_interfaces',actionid:'103'},{id:'716',actionname:'check_tt',actionid:'101'}],但我需要输出为[{“headers”:[id,actionanme,actionid],“value”:[1,def,1234],[2,eder,345555]].我尝试使用lodash和uModule,如.each、.array。但我无法获得预期的输出,其中每次迭代都将获取标题详细信息,如下一条注释所示
{
headers: [ 'id', 'actionname', 'actionid' ],
values: [
[ '714', 'test_bsc_interface', '100' ],
[ '715', 'list_all_available_interfaces', '103' ],
[ '716', 'check_tt', '101' ]
]
}