我正在开发一个角+ nodejs应用程序,我需要一些来自json格式的sql的数据。我能够在json中获得数据,但我需要以类似于树的方式对数据进行分组。在sql、server还是前端级别有这样的方法吗?
表中的数据

我现在得到的
{"":[
"3",
"6",
"12"
],
"":[
"3",
"6",
"13"
],
"": [
"3",
"7",
"16"
],
"": [
"3",
"7",
"17"
],
"": [
"3",
"8",
"18"
],
"": [
"3",
"8",
"19"
],
"": [
"3",
"9",
"20"
],
"": [
"3",
"9",
"21"
]
}我想要的json:
{"" :{ "3": {"6": ["12", "13"], "7": ["16", "17"], "8": ["18", "19"], "9": [ "20", "21" ]} }}请提出一个方法来做这个。
提前感谢!
发布于 2017-09-15 14:08:31
首先,您必须将数据作为有效的json获得,如下所示:
var items = [
{
l0: "3",
l1: "6",
l2: "12"
},
{
l0: "3",
l1: "6",
l2: "13"
},
{
l0: "3",
l1: "7",
l2: "16"
},
{
l0: "3",
l1: "7",
l2: "17"
},
{
l0: "3",
l1: "8",
l2: "18"
},
{
l0: "3",
l1: "8",
l2: "19"
},
{
l0: "3",
l1: "9",
l2: "20"
},
{
l0: "3",
l1: "9",
l2: "21"
}
];然后你就可以得到你想要的了:
var result = {};
items.forEach(item => {
result[item.l0] = result[item.l0] || {};
result[item.l0][item.l1] = result[item.l0][item.l1] || [];
result[item.l0][item.l1].push(item.l2);
});
console.log(result);最终结果:

发布于 2017-09-15 12:38:56
可以按多个列对SQL查询结果进行排序,这将按所查找的顺序返回数据:
<original_query> + ORDER BY c1, c2, c3https://stackoverflow.com/questions/46239630
复制相似问题