Json 使用jq通过包含字符串来查找数组元素
我有一个数组“operations”,我想从中返回包含匹配字符串的所有元素,如Json 使用jq通过包含字符串来查找数组元素,json,jq,Json,Jq,我有一个数组“operations”,我想从中返回包含匹配字符串的所有元素,如“w51”。到目前为止,我发现的所有示例都涉及键值对。我正在使用jq.operations[]”
“w51”
。到目前为止,我发现的所有示例都涉及键值对。我正在使用jq.operations[]”
检索元素
{
"operations": [
[
"create",
"w51",
"rwt.widgets.Label",
{
"parent": "w41",
"style": [
"NONE"
],
"bounds": [
101,
0,
49,
42
],
"tabIndex": -1,
"customVariant": "variant_pufferLabelLogout"
}
],
[
"create",
"w39",
"rwt.widgets.Composite",
{
"parent": "w34",
"style": [
"NONE"
],
"children": [
"w52"
],
"bounds": [
0,
42,
762,
868
],
"tabIndex": -1,
"clientArea": [
0,
0,
762,
868
]
}
]
]
}
搜索包含“w51”的数组元素时,我的预期输出如下:
[
"create",
"w51",
"rwt.widgets.Label",
{
"parent": "w41",
"style": [
"NONE"
],
"bounds": [
101,
0,
49,
42
],
"tabIndex": -1,
"customVariant": "variant_pufferLabelLogout"
}
]
如果您使用jq 1.4版或更高版本,则以下内容应产生所需的输出:
.operations[]
| select( index("w51") )
选择
根据您拥有的jq版本的不同,有很多选择。如果您的jq有any/0
,以下是一个有效的选项:
.operations[] | select( any(. == "w51" ) )
如果您使用jq 1.4版或更高版本,则以下内容应产生所需的输出:
.operations[]
| select( index("w51") )
选择
根据您拥有的jq版本的不同,有很多选择。如果您的jq有any/0
,以下是一个有效的选项:
.operations[] | select( any(. == "w51" ) )
您是否尝试过
jq.operations[]|选择(在(.[];“w51”))文件
?这给了我一个错误:jq:error:IN/1未在第1行定义:
更新到版本1.6不幸的是,我对正在使用的系统没有影响。没有别的办法了吗?非常感谢!这很有效。我使用的是raspberry pi,似乎还没有针对arm处理器的v1.6版本。您是否尝试过jq“。操作[]|选择(IN([];“w51”)”文件
?这给了我一个错误:jq:error:IN/1未在第1行定义:
更新到1.6版不幸的是,我对我正在使用的系统没有影响。没有别的办法了吗?非常感谢!这很有效。我使用的是raspberry pi,似乎还没有针对arm处理器的v1.6版本。