如何使用Retrofit对返回的JSON数据按部门条件过滤查询
按部门过滤员工API响应结果解决方案
场景1:后端接口支持服务端部门查询过滤
你当前传入department参数后仍返回全量数据,优先排查以下问题:
- 确认查询参数名是否符合后端要求:部分接口可能使用
dept、department_id等其他参数名代替department,可查阅接口文档或和后端开发确认参数规则 - 抓包验证请求参数是否正常携带:检查实际发起的请求URL是否为
/users?department=你传入的部门值,确认参数没有被Retrofit拦截器、全局配置等逻辑遗漏 - 确认参数值规则是否匹配:比如后端要求传入部门中文名而不是
back_office这类英文标识,或者参数值大小写敏感,和你传入的内容不匹配
场景2:后端接口不支持服务端过滤,需本地处理
如果确认后端不提供过滤能力,直接在拿到接口响应后对员工列表做本地过滤即可,示例代码如下:
// 发起请求获取全量员工数据 val allWorkers = workersApi.getWorkers(targetDepartment) // 按指定部门过滤,得到目标员工列表 val filteredWorkerList = allWorkers.items.filter { it.department == targetDepartment } // 如果需要返回Workers类型的结果,可直接重新封装: val filteredWorkers = Workers(items = filteredWorkerList)
补充注意:过滤时需注意部门值的大小写、前后空格等匹配问题,若存在前后端返回值格式不统一的情况,可以先做标准化处理(比如统一转小写、trim空格)再匹配,避免过滤遗漏。
内容的提问来源于stack exchange,提问作者Haberturm
相关产品推荐
相关产品推荐

