如何在URL中查询JSON数组?筛选outcome为Success的员工
如何通过URL参数筛选outcome为Success的员工
问题背景
你需要从https://example.com/v1/employee/all接口返回的JSON数据中,筛选出存在outcome字段等于Success的销售记录的员工,同时之前尝试通过employeeId查询时因参数格式错误导致失败。
目标JSON数据结构(简化版):
{ "type": "Employees", "information": [ { "employeeId": 1, "details": { "salesHistory": [ { "sale": [{"outcome": "Success"}] } ] } }, { "employeeId": 15, "details": { "salesHistory": [ { "sale": [{"outcome": "Pending"}] } ] } } ] }
常见URL筛选参数写法(按后端支持格式选择)
不同后端框架对嵌套字段、数组的参数解析规则不同,以下是几种通用可行的格式:
1. 点符号嵌套格式(推荐,多数后端支持)
直接用.连接嵌套字段层级,指定到outcome字段:
https://example.com/v1/employee/all?type=Employees&information.details.salesHistory.sale.outcome=Success
说明:该格式会匹配所有information数组中,存在任意一条sale记录的outcome为Success的员工。
2. 括号嵌套格式
用[]包裹每个嵌套层级的字段名,适合对数组解析更严格的后端:
https://example.com/v1/employee/all?type=Employees&information[details][salesHistory][sale][outcome]=Success
3. 数组元素匹配格式
如果后端需要明确指定匹配数组中的任意元素,可添加[]标记数组层级:
https://example.com/v1/employee/all?type=Employees&information.details.salesHistory[].sale[].outcome=Success
修复你之前的employeeId查询参数
你之前用information[][employeeId]=1失败的原因是多余的空[],正确写法如下:
https://example.com/v1/employee/all?type=Employees&information.employeeId=1
或括号格式:
https://example.com/v1/employee/all?type=Employees&information[employeeId]=1
内容的提问来源于stack exchange,提问作者AlbHertz
相关产品推荐
相关产品推荐

