bigpigB
V2EX  ›  问与答

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

  •  
  •   bigpigB · Jan 6, 2023 · 1759 views
    This topic created in 1274 days ago, the information mentioned may be changed or developed.

    原始数据(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 replies    2023-01-06 15:58:04 +08:00
    workOrNot
        1
    workOrNot  
       Jan 6, 2023
    列表.parallelStream().collect(Collectors.groupingBy("项目名")).entrySet().parallelStream().collect(Collectors.groupingBy("组名"))
    nitmali
        2
    nitmali  
       Jan 6, 2023
    list.stream().collect(Collectors.groupingBy(Bean::getProjectName, Collectors.groupingBy(Bean::getGroupName)));
    leipengcheng
        3
    leipengcheng  
       Jan 6, 2023
    感谢,最近正好需要这个
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2925 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 45ms · UTC 01:48 · PVG 09:48 · LAX 18:48 · JFK 21:48
    ♥ Do have faith in what you're doing.