Javascript 如何循环JSON响应对象以删除属性标签?
我的API路由中有以下代码,返回以下JSON对象:Javascript 如何循环JSON响应对象以删除属性标签?,javascript,json,Javascript,Json,我的API路由中有以下代码,返回以下JSON对象: // GET - Get login settings router.route('/login/settings').get((req, res) => { let settings =[]; pool.connect((err, client, done) => { client.query('SELECT * FROM public.settings', (err, result) => {
// GET - Get login settings
router.route('/login/settings').get((req, res) => {
let settings =[];
pool.connect((err, client, done) => {
client.query('SELECT * FROM public.settings', (err, result) => {
settings = result.rows;
res.json({
settings,
});
});
});
});
如何在路由代码中编写循环以将JSON响应对象更改为如下所示:
{
"settings": [
{
"key": "TwoFactorAuth",
"value": "false"
},
{
"key": "sessionTimeout",
"value": "200"
}
]
}
循环执行
设置
数组,并使用一个属性创建一个新对象。属性的名称来自原始元素的键
元素,属性的值来自值
元素。然后用这个替换数组元素
{
"settings": [
{
"TwoFactorAuth": "false"
},
{
"sessionTimeout": "200"
}
]
}
var设置=response.settings;
对于(变量i=0;i
要将变量添加为某个对象的键,可以使用[key]符号。
请尝试以下操作以设置要更新的对象:
var settings = response.settings;
for (var i = 0; i < settings.length; i++) {
var obj = {};
obj[settings[i].key] = settings[i].value;
settings[i] = obj;
}
试试这个工作片段:
var jsonObj={
“设置”:[
{
“关键”:“两个因素”,
“值”:“假”
},
{
“键”:“会话超时”,
“值”:“200”
}
]
};
var res=jsonObj.settings.map(函数(项){
var x={};
x[item.key]=item.value;
返回x;
});
控制台日志(res)代码>通过在数组上映射来更改result.rows对象的形状
将第6行更改为:
settings = settings.map((data) => {
var object = {};
object[data.key] = data.value;
return object;
});
致:
应该这样做请尝试一下,并询问你在做这件事时遇到的任何困难。记得也发一篇文章。我可以请你在你的答案周围添加一些上下文吗。只有代码的答案很难理解。如果你能在你的文章中添加更多的信息,这将有助于询问者和未来的读者。
settings = result.rows;
settings = result.rows.map(setting => ({[setting.key]:setting.value}))