带有Mysql和Nodejs的嵌套JSON对象
我的目的是在JSON对象数组中检索包含相关页面的页面节列表 例如:带有Mysql和Nodejs的嵌套JSON对象,mysql,node.js,json,Mysql,Node.js,Json,我的目的是在JSON对象数组中检索包含相关页面的页面节列表 例如: [ { "sectionid": "value1", "sectiondescription": "value1", "pages": [ { "pageid": "id1", "pagedescription": "desription1", },
[
{
"sectionid": "value1",
"sectiondescription": "value1",
"pages": [
{
"pageid": "id1",
"pagedescription": "desription1",
},
{
"pageid": "id2",
"pagedescription": "desription2",
}
]
},
{
"sectionid": "value2",
"sectiondescription": "value2",
"pages": [
{
"pageid": "id3",
"pagedescription": "desription3",
},
{
"pageid": "id4",
"pagedescription": "desription4",
}
]
}
]
我正在使用Nodejs和Mysql
我使用下面的mysql查询检索为给定用户角色启用的部分:
SELECT section.SectionId,section.Description
FROM section as section
INNER JOIN userroletosection AS urts
ON section.SectionId = urts.SectionID
INNER JOIN user AS user
ON user.RoleID = urts.UserRoleID
WHERE
user.UserId = 1
此查询用于检索给定节的页面:
SELECT p.PageID,p.Description,p.URL
FROM page AS p
INNER JOIN sectiontopage AS stp
ON p.PageID = stp.PageID
WHERE
stp.SectionID = ?
我需要知道如何使用循环运行查询,以及如何使用nodejs和mysql构建Json数组对象
这里我附上了nodejs代码
conn.query('SELECT*From section as section internal JOIN userroletossection as urts ON section.SectionId=urts.SectionId internal JOIN user as ON user.RoleID=urts.UserRoleID WHERE user.UserId=1',(err,rows,fileds)=>{
if(!err)
{
对于(变量i=0;i{
如果(!err2)
{
对于(var j=0;j您必须使用MySQL JSON函数才能访问JSON文档中的项目,例如JSON_EXTRACT和JSON_CONTAINS您是否可以放置nodejs代码以查看您做错了什么?
if(!err)
{
for (var i = 0;i < rows.length; i++) {
conn.query('SELECT p.PageID,p.Description,p.URL FROM page AS p INNER JOIN sectiontopage AS stp ON p.PageID = stp.PageID WHERE stp.SectionID = ?',[rows[i].SectionId],(err2,rows2,fileds)=>{
if(!err2)
{
for(var j =0; j<rows2.length;j++)
{
obj2.push({ PID: JSON.stringify(rows2[j].PageID),
PageID: rows2[j].PageID,
PageDescription: rows2[j].Description,
PageUrl: rows2[j].URL
})
}
console.log(obj2);
}
})
{
objs.push({ID: JSON.stringify(rows[i].SectionId),
ID: rows[i].SectionId,
sectionDesciption: rows[i].Description,
Pages: obj2
});
}
}