我正在尝试使用内置过滤器字符串的Jmespath o标准来过滤wpapi请求。
我想使用“过滤器”数组中的一个或多个值来检索列表中的所有“ id”。 “过滤器”嵌套在“ _item_filter-options”下。
例如,我会使用“ filters” == 409 OR 400过滤所有ID。
那如何过滤所有带有“ locations” == 217 OR其他值的“ id”呢?
您能帮我找到解决方法吗?
[
{
"id": 2608,
"date": "2018-08-18T12:53:16",
"date_gmt": "2018-08-18T10:53:16",
"ait-locations": [
217,
19
],
"ait_item_filters-options": {
"filters": [
"419",
"400",
"409",
"418",
"531",
"403",
"408",
"575"
]
},
},
{
"id": 2588,
.....
我添加了一些其他信息,可能有助于回答我。 我正在使用带有自定义帖子类型“ ait-item”和元字段的ait-club wordpress主题。
我正在尝试使用Wordpress Rest API来获取具有某些属性(例如纬度,标题,地址等)的所有ait-item,并通过_item_filters-options“->” filters“进行过滤。
例如使用http://mydomain/wp-json/wp/v2/ait-item?location=19 IT工作(位置是自定义分类法)。如何使用Jmespath检索相同的结果?
如何使用filter = 419或更多值获得ait-item?
对不起,我会说一点英语,谢谢。
编辑: 使用:
https://www.mydomain.it/wp-json/wp/v2/ait-item?_query=[?_item_filters-options.filters[0]=='400']
i可以检索所有“ id”,其中“ filters”数组的firt值为400。 我无法搜索整个“过滤器”数组!你能帮我吗?
编辑:我找到了使用以下方法的解决方案:
https://www.areepicnic.it/wp-json/wp/v2/ait-item?_query=[?"_ait-item_filters-options".filters[?@=='400']]
或
https://www.areepicnic.it/wp-json/wp/v2/ait-item?_query=[?"_ait-item_filters-options".filters[?contains(@,'397')]]
现在我正在尝试使用多个值进行过滤。
答案 0 :(得分:0)
可以像这样对过滤器进行过滤,并根据需要使用尽可能多的或运算符||
来获取所需的所有选项:
[?contains(_item_filters-options.filters, '409') || contains(_item_filters-options.filters, '400')].id
以及类似的位置信息:
[?contains(locations, '217') || ?contains(locations, '<other-value>'].id