我有一个像这样的字符串:
"The sky is blue."
和一个 JSON 文件,例如
[
{
"id": 1234,
"name": "Entry 1",
"keywords": [
"orange",
"yellow"
]
},
{
"id": 2345,
"name": "Entry 2",
"keywords": [
"red",
"blue",
"pink"
]
},
{
"id": 3456,
"name": "Entry 3",
"keywords": [
"green",
"blue",
"black"
]
}
]
我想返回具有可以在字符串中找到的关键字的第一个元素。
在这种情况下,我想要具有 id 的元素2345
,因为关键字"blue"
出现在字符串中,并且是第一个匹配项。
JQ 是否有单线解决方案(例如使用各种管道)?我不是在寻找带有循环的解决方案。
Using first/1 https://stedolan.github.io/jq/manual/#first(expr),last(expr),nth(n;expr) with a select
表达是这里的正确方法
jq --arg v "The sky is blue." 'first(.[] | select(.keywords as $k | $v | match($k[])))'
produces
{
"id": 2345,
"name": "Entry 2",
"keywords": [
"red",
"blue",
"pink"
]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)