首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据集设置为带有组的json

将数据集设置为带有组的json
EN

Stack Overflow用户
提问于 2017-09-15 12:29:23
回答 2查看 155关注 0票数 3

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

表中的数据

我现在得到的

代码语言:javascript
复制
{"":[
    "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:

代码语言:javascript
复制
{"" :{ "3": {"6": ["12", "13"], "7": ["16", "17"], "8": ["18", "19"], "9": [ "20", "21" ]} }}

请提出一个方法来做这个。

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-15 14:08:31

首先,您必须将数据作为有效的json获得,如下所示:

代码语言:javascript
复制
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"
    }
  ];

然后你就可以得到你想要的了:

代码语言:javascript
复制
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);

最终结果:

票数 1
EN

Stack Overflow用户

发布于 2017-09-15 12:38:56

可以按多个列对SQL查询结果进行排序,这将按所查找的顺序返回数据:

代码语言:javascript
复制
<original_query> + ORDER BY c1, c2, c3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46239630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档