如何在OData接口的JSON URL中过滤扩展返回的嵌套数据集
解决方法
你调用的是标准OData协议接口,针对嵌套数组类型的扩展字段过滤,直接使用OData内置的any操作符即可实现需求,分两种常用场景:
场景1:筛选所有至少包含1条状态为Active的开放看房记录的房源,返回房源的全部开放看房记录(包含已结束的)
未编码的过滤参数写法:$filter=OpenHouses/any(o: o/OpenHouseStatus eq 'Active')
完整URL编码后的请求示例:
https://api.bridgedataoutput.com/api/v2/OData/actris/Property?access_token=HIDDEN&$expand=OpenHouses&$filter=OpenHouses/any(o%3A%20o%2FOpenHouseStatus%20eq%20%27Active%27)
场景2:筛选符合条件的房源的同时,只返回OpenHouses数组内状态为Active的条目,过滤掉已结束的记录
可以直接在$expand参数中嵌套过滤条件,未编码的参数写法:$expand=OpenHouses($filter=OpenHouseStatus eq 'Active')
完整URL编码后的请求示例:
https://api.bridgedataoutput.com/api/v2/OData/actris/Property?access_token=HIDDEN&$expand=OpenHouses($filter%3DOpenHouseStatus%20eq%20%27Active%27)
如果需要同时叠加原有城市过滤规则,将两个过滤条件用and拼接即可,未编码示例:$filter=City eq 'Austin' and OpenHouses/any(o: o/OpenHouseStatus eq 'Active')
内容的提问来源于stack exchange,提问作者Joey Lawrence
相关产品推荐
相关产品推荐

