zoukankan      html  css  js  c++  java
  • 对复杂json进行处理

    {"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;
        }
    }
  • 相关阅读:
    PMP-合同类型
    一、JavaScript简介
    编写一程序,从键盘输入10个实数,计算并输出算术平均数
    从键盘输入3个整数,输出其中最大数
    穷举法判断键入的数是不是素数
    2.事件每天执行
    1.mysql 启动服务提示输入密码
    二、linux 用户授权
    1.maven打包乱码
    1.下载谷歌插件
  • 原文地址:https://www.cnblogs.com/chenyangwang/p/8279050.html
Copyright © 2011-2022 走看看