IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Flutter 递归查询Map(字典) -> 正文阅读

[移动开发]Flutter 递归查询Map(字典)

?下面代码从模拟的公司组织架构数据中,把各级部们的员工都查找出来。

void main() {
  doFind();
}

void doFind(){
  String jsonString = getJsonString();

  Map<String,dynamic> rootMap = jsonDecode(jsonString);
  
  List foundUsers = [];
  recursiveFind(rootMap,foundUsers);

  print('found user count:${foundUsers.length}');
}

void recursiveFind(Map<String,dynamic> map,List foundUsers){
  List users = map['users'];
  if(users != null){
    foundUsers.addAll(users);
  }

  List organizations = map['organizations'];
  if(organizations == null){
    return;
  }
  for(Map child in organizations){
    //此处递归
    recursiveFind(child,foundUsers);
  }
}

String getJsonString(){
  return  '''
  {
    "id": 6636142779154173952,
    "name": "北京世纪教育科技有限公司",
    "parentId": -1,
    "parentName": null,
    "organizations": [
      {
        "id": 6636240725304545280,
        "name": "战略合作中心",
        "parentId": 6636142779154173952,
        "parentName": "北京世纪教育科技有限公司",
        "organizations": null,
        "users": [
          {
            "id": 6637575629174870016,
            "name": "张大继"
          },
          {
            "id": 6637293257711816704,
            "name": "金大瑞"
          }
        ]
      },
      {
        "id": 6636522476308402176,
        "name": "市场中心",
        "parentId": 6636142779154173952,
        "parentName": "北京世纪教育科技有限公司",
        "organizations": [
          {
            "id": 6769480335790051328,
            "name": "环京战区",
            "parentId": 6636522476308402176,
            "parentName": "市场中心",
            "organizations": [
              {
                "id": 6637566159619231744,
                "name": "大连分公司",
                "parentId": 6769480335790051328,
                "parentName": "环京战区",
                "organizations": [
                  {
                    "id": 6829963307508699136,
                    "name": "总监一部",
                    "parentId": 6637566159619231744,
                    "parentName": "大连分公司",
                    "organizations": [
                      {
                        "id": 6829999798028996608,
                        "name": "经理一部",
                        "parentId": 6829963307508699136,
                        "parentName": "总监一部",
                        "organizations": null,
                        "users": [
                          {
                            "id": 6776071027786125312,
                            "name": "陈大阳"
                          },
                          {
                            "id": 6677831655157272576,
                            "name": "吴大煜"
                          }
                        ]
                      }
                    ],
                    "users": [
                      {
                        "id": 6853959974348001280,
                        "name": "崔大伟"
                      },
                      {
                        "id": 6776071292794834944,
                        "name": "吴大涵"
                      },
                      {
                        "id": 6776071223655927808,
                        "name": "池大国"
                      }
                    ]
                  }
                ],
                "users": [
                  {
                    "id": 6785359176228016128,
                    "name": "白云"
                  }
                ]
              }
            ],
            "users": null
          }
        ],
        "users": null
      },
      {
        "id": 6637251187156586496,
        "name": "财务部",
        "parentId": 6636142779154173952,
        "parentName": "北京世纪教育科技有限公司",
        "organizations": [
          {
            "id": 6769483913367785472,
            "name": "总部财务",
            "parentId": 6637251187156586496,
            "parentName": "财务部",
            "organizations": null,
            "users": [
              {
                "id": 6637325183000645632,
                "name": "程大楠"
              },
              {
                "id": 6637320375967551488,
                "name": "王大连"
              }
            ]
          }
        ],
        "users": null
      },
      {
        "id": 6637251450378522624,
        "name": "总裁办",
        "parentId": 6636142779154173952,
        "parentName": "北京世纪教育科技有限公司",
        "organizations": null,
        "users": [
          {
            "id": 6637247835978993664,
            "name": "李大佳"
          },
          {
            "id": 6637214779612205056,
            "name": "李大东"
          }
        ]
      },
      {
        "id": 6636522498269777920,
        "name": "技术中心",
        "parentId": 6636142779154173952,
        "parentName": "北京世纪教育科技有限公司",
        "organizations": [
          {
            "id": 6637620686112296960,
            "name": "总部技术中心",
            "parentId": 6636522498269777920,
            "parentName": "技术中心",
            "organizations": null,
            "users": [
              {
                "id": 6840561320513900544,
                "name": "方大勇"
              },
              {
                "id": 6637556098842890240,
                "name": "李大霏"
              }
            ]
          },
          {
            "id": 6637620745000325120,
            "name": "北京大区",
            "parentId": 6636522498269777920,
            "parentName": "技术中心",
            "organizations": null,
            "users": [
              {
                "id": 6637288574620405760,
                "name": "周大媛"
              }
            ]
          },
          {
            "id": 6637620810527936512,
            "name": "东北大区",
            "parentId": 6636522498269777920,
            "parentName": "技术中心",
            "organizations": null,
            "users": [
              {
                "id": 6637292718395625472,
                "name": "池大霁"
              },
              {
                "id": 6722713638320345088,
                "name": "曹大强"
              }
            ]
          },
          {
            "id": 6637620880916746240,
            "name": "山东大区",
            "parentId": 6636522498269777920,
            "parentName": "技术中心",
            "organizations": null,
            "users": [
              {
                "id": 6637293160861143040,
                "name": "伊大帅"
              },
              {
                "id": 6637266416984788992,
                "name": "曾大成"
              },
              {
                "id": 6637626476143448064,
                "name": "迟一礼"
              }
            ]
          }
        ],
        "users": null
      },
      {
        "id": 6637251507035181056,
        "name": "人力资源中心",
        "parentId": 6636142779154173952,
        "parentName": "北京世纪教育科技有限公司",
        "organizations": null,
        "users": [
          {
            "id": 6695878785629294592,
            "name": "闫大京"
          },
          {
            "id": 6709718214345101312,
            "name": "梁大芬"
          }
        ]
      }
    ],
    "users": [
      {
        "id": 6868841707459448832,
        "name": "张大丹"
      },
      {
        "id": 6864502026701770752,
        "name": "蒋大辉"
      }
    ]
  }  
  ''';
}

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:42:32  更:2022-01-25 10:44:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:50:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码