请教一个后端接口返回问题

2023-01-06 10:29:31 +08:00
 bigpigB

原始数据(id , 别名,库名,实例 IP ,实例端口,组名,项目名) [ (15, '192.168.0.4', 'test', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'bs2022720', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'aaaxxx', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'test22', '192.168.0.4', 3306, '组 A', '项目 A'), (15, '192.168.0.4', 'test22', '192.168.0.4 ', 3306, '组 B', '项目 A'), (28, '[dev]192.168.0.5', 'test ', '192.168.0.5', 3306, '组 C', '项目 B'), (28, '[dev]192.168.0.5', 'iam', '192.168.0.5', 3306, '组 C', '项目 B') ]

如何能快速实现返回类似如下 json 格式: 即: 项目-组-实例-库 { '项目 A': [{ '组 A': [{ '192.168.0.4:3306': [{ 'schema': 'test' }, { 'schema': 'bs2022720' }, { 'schema': 'aaaxxx' }, { 'schema': 'test22' }] }], '组 B': [{ '192.168.0.4 :3306': [{ 'schema': 'test22' }] }] }], '项目 B': [{ '组 C': [{ '192.168.0.5:3306': [{ 'schema': 'test ' }, { 'schema': 'iam' }] }] }] }

854 次点击
所在节点    问与答
3 条回复
workOrNot
2023-01-06 10:34:47 +08:00
列表.parallelStream().collect(Collectors.groupingBy("项目名")).entrySet().parallelStream().collect(Collectors.groupingBy("组名"))
nitmali
2023-01-06 11:45:58 +08:00
list.stream().collect(Collectors.groupingBy(Bean::getProjectName, Collectors.groupingBy(Bean::getGroupName)));
leipengcheng
2023-01-06 15:58:04 +08:00
感谢,最近正好需要这个

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/906933

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX