如何使用 Retrofit 查询过滤器 json
How to query filter json with Retrofit
我有 api 那个 return 工人名单:
{
"items": [
{
"id": "e0fceffa-cef3-45f7-97c6-6be2e3705927",
"avatarUrl": "https://cdn.fakercloud.com/avatars/marrimo_128.jpg",
"firstName": "Dee",
"lastName": "Reichert",
"userTag": "LK",
"department": "back_office",
"position": "Technician",
"birthday": "2004-08-02",
"phone": "802-623-1785"
},
{
"id": "6712da93-2b1c-4ed3-a169-c69cf74c3291",
"avatarUrl": "https://cdn.fakercloud.com/avatars/alterchuca_128.jpg",
"firstName": "Kenton",
"lastName": "Fritsch",
"userTag": "AG",
"department": "analytics",
"position": "Orchestrator",
"birthday": "1976-06-14",
"phone": "651-313-1140"
},
....
]
}
我想过滤响应,以便只获取有关特定部门工作人员的信息。
我试着这样做:
interface WorkersApi {
@GET("users")
suspend fun getWorkers(
@Query("department") department: String
): Workers
}
但它 return 是同一个列表,没有任何过滤器。如何过滤响应以便我只获取特定部门工作人员的信息?
*Workers 只是数据 class,它只包含一个字段 - 项目列表(workers)
您尝试执行的操作更改了对服务器的请求。它将部门作为请求的查询参数发送。如果服务器不支持此参数,则不会发生任何事情。我不知道您是否与控制后端的人员一起工作,但您可以与他们讨论是否可以为过滤结果添加功能。
相反,如果您想在从服务器获取完整列表后过滤结果,只需对您获取的列表应用过滤器即可。
您可以在您的 Workers
对象上执行此操作
val department = "example"
val filteredList = workersObject.items.filter {it.department == department}
我有 api 那个 return 工人名单:
{
"items": [
{
"id": "e0fceffa-cef3-45f7-97c6-6be2e3705927",
"avatarUrl": "https://cdn.fakercloud.com/avatars/marrimo_128.jpg",
"firstName": "Dee",
"lastName": "Reichert",
"userTag": "LK",
"department": "back_office",
"position": "Technician",
"birthday": "2004-08-02",
"phone": "802-623-1785"
},
{
"id": "6712da93-2b1c-4ed3-a169-c69cf74c3291",
"avatarUrl": "https://cdn.fakercloud.com/avatars/alterchuca_128.jpg",
"firstName": "Kenton",
"lastName": "Fritsch",
"userTag": "AG",
"department": "analytics",
"position": "Orchestrator",
"birthday": "1976-06-14",
"phone": "651-313-1140"
},
....
]
}
我想过滤响应,以便只获取有关特定部门工作人员的信息。 我试着这样做:
interface WorkersApi {
@GET("users")
suspend fun getWorkers(
@Query("department") department: String
): Workers
}
但它 return 是同一个列表,没有任何过滤器。如何过滤响应以便我只获取特定部门工作人员的信息?
*Workers 只是数据 class,它只包含一个字段 - 项目列表(workers)
您尝试执行的操作更改了对服务器的请求。它将部门作为请求的查询参数发送。如果服务器不支持此参数,则不会发生任何事情。我不知道您是否与控制后端的人员一起工作,但您可以与他们讨论是否可以为过滤结果添加功能。
相反,如果您想在从服务器获取完整列表后过滤结果,只需对您获取的列表应用过滤器即可。
您可以在您的 Workers
对象上执行此操作
val department = "example"
val filteredList = workersObject.items.filter {it.department == department}