{"dingtalk_corp_role_list_response":{"result":{"has_more":"false","list":{"role_groups":[{"group_name":"默认","roles":{"roles":[{"id":278146611,"role_name":"主管理员"},{"id":278146612,"role_name":"子管理员"},{"id":278146613,"role_name":"负责人"},{"id":278146614,"role_name":"主管"}]}},{"group_name":"职务","roles":{"roles":[{"id":278146616,"role_name":"财务"},{"id":278146617,"role_name":"人事"},{"id":278146618,"role_name":"出纳"},{"id":278146619,"role_name":"销售"},{"id":278146620,"role_name":"客服"},{"id":278146621,"role_name":"质检"},{"id":278146622,"role_name":"研发"},{"id":278146623,"role_name":"行政"},{"id":278146624,"role_name":"设计"},{"id":278146625,"role_name":"产品"},{"id":278554778,"role_name":"采购"}]}},{"group_name":"岗位","roles":{"roles":[{"id":278146627,"role_name":"普通员工"},{"id":278146628,"role_name":"经理"},{"id":278146629,"role_name":"科长"},{"id":278146630,"role_name":"部长"},{"id":278146631,"role_name":"总监"},{"id":278146632,"role_name":"管理层"},{"id":278146633,"role_name":"高级管理者"},{"id":278146634,"role_name":"总经理"}]}}]}},"request_id":"7iythn3xigry"}}

  

调用接口返回的json如下

现在要得到的是roles的 role_name和id,具体方法如下,其实还是很简单的,只不过需要耐心点。

public static List<RoleGroup> getAllRoleList(String access_token,Long size,Long offsize) throws ApiException, OApiResultException{
DingTalkClient client = new DefaultDingTalkClient("https://eco.taobao.com/router/rest");
CorpRoleListRequest req = new CorpRoleListRequest();
List<RoleGroup> list = new ArrayList<>();
req.setSize(size);//分页大小
req.setOffset(offsize);//分页偏移
CorpRoleListResponse rsp = client.execute(req, access_token);
JSONObject response = JSON.parseObject(rsp.getBody());
if (response.containsKey("dingtalk_corp_role_list_response")) {
JSONObject j1 = response.getJSONObject("dingtalk_corp_role_list_response");
JSONObject j2 = j1.getJSONObject("result");
JSONObject j3 = j2.getJSONObject("list");
JSONArray j5 = j3.getJSONArray("role_groups");
for (int i = 0; i < j5.size(); i++) {
JSONObject j6 = j5.getJSONObject(i);
JSONObject j7 = j6.getJSONObject("roles");
JSONArray j8 = j7.getJSONArray("roles");
if(j8!=null){
for(int n = 0; n < j8.size(); n++){
RoleGroup g = j8.getObject(n, RoleGroup.class);
list.add(g);
}}
}
return list;
}
else {
throw new OApiResultException("Role");
}
}
package com.alibaba.dingtalk.openapi.demo.role;

public class RoleGroup {
private String id;
private String role_name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getRole_name() {
return role_name;
}
public void setRole_name(String role_name) {
this.role_name = role_name;
}
}

最新文章

  1. Creating a Clean, Minimal-Footprint ASP.NET WebAPI Project with VS 2012 and ASP.NET MVC 4
  2. Linux之硬件管理(不断更新中)
  3. 一个通用的DataGridView导出Excel扩展方法(支持列数据格式化)
  4. html 5 drag and drop upload file
  5. 检查REDO日志相关信息并生成HTML文件的脚本
  6. QT5.1.1中MinGW4.8的环境变量配置
  7. error_reporting()函数用法
  8. Carmack在QUAKE3中使用的计算平方根的函数
  9. Nginx+phpfastcgi下flush输出问题
  10. 如何判断一个对象是否为jquery对象
  11. git上传报错的解决方案
  12. 黑马day16 jquery&amp;amp;内容过滤选择器&amp;amp;可见度选择器
  13. 点(x1, y1)关于点(x0, y0)逆时针旋转a度后的坐标求解
  14. Windows上安装配置SSH教程(1)——知识点汇总
  15. js强制将页面放到最大
  16. 10--Python入门--异常处理
  17. 20175316 盛茂淞 实验一 Java开发环境的熟悉
  18. __AFO
  19. rand()产生随机数 及其和clock()的不同
  20. Matlab批量处理指定文件夹下的所有音频文件

热门文章

  1. Linux中的各种锁及其基本原理
  2. jupyter与requests的初步使用
  3. Linux文档整理之【Nginx安装Docker】
  4. Spark Streaming整合logstash + Kafka wordCount
  5. lldb调试命令
  6. nmap 扫描出某网段内web服务器
  7. P3833 [SHOI2012]魔法树 (树链剖分模板题)
  8. CCPC-Wannafly Winter Camp Day1 (Div2) 吃豆豆 (DP)
  9. 使用glew和glad 新建窗口
  10. GUI学习之二十八—QMessageBox