Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何格式化JSON对象键/值对_Json_Node.js - Fatal编程技术网

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

如何格式化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,并查看了一些网站,但它不起作

我是nodejs的新手,现在我能够从数据库中获取数据并显示为键/值对的restapi。我的输出如下所示

[{"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' ] 
  ] 
}