Я играл с JQ https://jqplay.org для извлечения данных JSON, и я видел операцию test
, которая позволяет мне использовать регулярные выражения для извлечения данных.В следующем примере выполнения я передал шаблон регулярного выражения "^progressive$"
в test
для поиска данных:
DATA :
[
{"genre": "progressive"},
{"genre": "a progressive 1"}
]
QUERY :
map(select(.genre | test("^progressive$")))
РЕЗУЛЬТАТ :
[
{
"genre": "progressive"
}
]
================================================================================
Теперь я хочу сделать противоположное выше.Значение genre
в JSON - это мое регулярное выражение, а то, что я передаю test
, - мои данные.Например:
ДАННЫЕ :
[
{"genre": "^progressive$"},
{"genre": "^abc$"}
]
QUERY :
Я еще не выяснил запрос :(но я попытался выполнить следующее, но оно не вернуло то, что я хочу или ошибка.
map(select("progressive" | test(.["genre"])))
ОЖИДАЕМЫЙ РЕЗУЛЬТАТ :
[
{
"genre": "^progressive$"
}
]
Я не знаю, еслиэто можно сделать или, если кто-нибудь знает, как это сделать. Я думаю о том, чтобы сделать длинный путь, который будет проходить через каждый объект в массиве и извлекать значение genre
, а затем сравнивать с progressive
. Это долгий путь, и этобудет работать, но мне любопытно, если кто-нибудь знает лучший и более эффективный способ.
Спасибо