V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bigpigB
V2EX  ›  问与答

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

  •  
  •   bigpigB · 2023-01-06 10:29:31 +08:00 · 1055 次点击
    这是一个创建于 716 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原始数据(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' }] }] }] }

    3 条回复    2023-01-06 15:58:04 +08:00
    workOrNot
        1
    workOrNot  
       2023-01-06 10:34:47 +08:00
    列表.parallelStream().collect(Collectors.groupingBy("项目名")).entrySet().parallelStream().collect(Collectors.groupingBy("组名"))
    nitmali
        2
    nitmali  
       2023-01-06 11:45:58 +08:00
    list.stream().collect(Collectors.groupingBy(Bean::getProjectName, Collectors.groupingBy(Bean::getGroupName)));
    leipengcheng
        3
    leipengcheng  
       2023-01-06 15:58:04 +08:00
    感谢,最近正好需要这个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2818 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:56 · PVG 19:56 · LAX 03:56 · JFK 06:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.