gpt4 book ai didi

没有双{}的Javascript将数组转换为Json

转载 作者:行者123 更新时间:2023-11-30 15:04:34 28 4
gpt4 key购买 nike

我在节点 js 中有两个并行的 mysql 查询(以更快地获取数据),这是从 mysql 数据库读取并将结果放入 javascript 对象的 javascript 代码:

async.parallel({
aaChannelsCount: function(cb) {
/* GET - channels */
pool.query("SELECT JSON_LENGTH(sort) AS channels FROM channels WHERE bouquet='[\"?\"]'",[rows[0].bouquet], function (err, rows, fields) {
/* CHANNELS - count */
if (rows.length) {
data.push( {"channels": rows[0].channels, "radio": 0} );
};
});
},
aaVideoClub: function(cb) {
/* GET - videoclub */
pool.query("SELECT count(id) AS videoclub FROM vod", function (err, rows, fields) {
/* VIDEOCLUB - count */
data.push( {"videoclub": rows[0].videoclub} );
res.json(data);
});
}
}, function(err, results) {
if (err) {
/* SHOW - unauthorized */
res.sendStatus(401);
} else {
res.json(data);
}
}
);

我正在使用 res.json(data) 这个输出:

[{"channels":3,"radio":0},{"videoclub":2}]

并且需要得到这个输出:

{"channels":3,"radio":0, "videoclub":2}

我在代码中使用 data.push 将 mysql 的结果添加到 js 数组对象中,然后将其转换为 json。但是我无法得到想要的结果。

最佳答案

你可以使用 Object.assignspread syntax ...用于将数组转换为参数。

var array = [{ channels: 3, radio: 0 }, { videoclub: 2 }],
object = Object.assign(...array);

console.log(object);

另一种解决方案是,直接获取一个对象并直接分配属性,而不是

if (rows.length) {
data.push( {"channels": rows[0].channels, "radio": 0} );
}

使用对象并直接赋值

var object = {};

if (rows.length) {
object.channels = rows[0].channels;
object.radio = 0;
}

等等。

顺便说一句,在 block 语句 { ... } 之后,不需要分号。

关于没有双{}的Javascript将数组转换为Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45975650/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com