首页 新闻 会员 周边 捐助

生成树形Json数据

0
悬赏园豆:15 [已解决问题] 解决于 2021-03-01 14:22

请问一下如何生成类似下图的json数据,children里有children的,如果会EF CORE写的话那更好

godcloudy的主页 godcloudy | 初学一级 | 园豆:18
提问于:2021-03-01 10:08
< >
分享
最佳答案
0

目的是什么?更快?跟netcore关系有多少关系?

想快点越轻量的集合越好,

若是某些场合可能越方便的集合越好。

此处省略....

若是解析...为什么机器干的活要人去干?解决就业是政治问题,而不是我们程序员的技术问题。

见: https://q.cnblogs.com/q/129110/

收获园豆:15
花飘水流兮 | 专家六级 |园豆:13615 | 2021-03-01 10:30

我说的是EF core EntityFrame Core

godcloudy | 园豆:18 (初学一级) | 2021-03-01 10:32

@godcloudy: 个人简化(且对跨时区、跨系统、跨平台)推荐:基础表只做基础值类型 和 string类型,时间类型一律long时间戳,表内约束通常只做值范围检测,其他约束由于最终需要业务表述,因此一律在业务层去处理。

若复合类成员为集合类型,根据上面表述增加并确定类型属性,通常也不需要额外类,因为微软提供大量模板类,如动态、tuple等等,若有特殊需要可执行创建模板类模板,一次性模板化完成所有符合类。

如:

微软为我们写好了Action、Func、Tuple...不妨用之抄之。

上述示例是为了客户端通用方便,因此用的为

public ObservableCollection<TChild> Children{get;set;}

花飘水流兮 | 园豆:13615 (专家六级) | 2021-03-01 12:57
其他回答(2)
0

一般情况下都是使用遍历去生成。
需要条件:
1,父子键值对。
2,实体类。
3,使用NewtonSoft.Json将遍历生成的类序列化成JSON。
以本问题为例:
1,父子键值对。可以使用“id”来进行。
父id-子id
3-23
23-24
24-30
24-31
2,实体类。按照children生成类即可。
如:
public class children
{
public int id{get;set;}
public string title{get;set;}
public string field{get;set;}
}

leslie_xin | 园豆:404 (菜鸟二级) | 2021-03-01 10:37
0

跑偏了。
这不就是递归算法的经典应用吗。递归生成树形结构,和efcore没啥关系。

楠木大叔 | 园豆:2083 (老鸟四级) | 2021-03-01 13:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册