Json 子级jq阵列滤波
我看到的所有演示/示例都在第一级进行过滤,但我想在第二级使用jq进行阵列过滤:Json 子级jq阵列滤波,json,jq,Json,Jq,我看到的所有演示/示例都在第一级进行过滤,但我想在第二级使用jq进行阵列过滤: { "TheArray": [ { "F1": "V11", "F2": "V12", "F3": "V13" }, { "F1": "V21", "F2": "V22", "F3": "V33" } ] } 我想使用“F1”==“V11”进行筛选,并获得: { "TheArr
{
"TheArray": [
{
"F1": "V11",
"F2": "V12",
"F3": "V13"
},
{
"F1": "V21",
"F2": "V22",
"F3": "V33"
} ]
}
我想使用“F1”==“V11”
进行筛选,并获得:
{
"TheArray": [
{
"F1": "V11",
"F2": "V12",
"F3": "V13"
} ]
}
使用jq
jq
,这可能吗 您可以使用此jq筛选器:
jq '.TheArray |= map(select(.F1=="V11"))' file
select
命令选择正确的元素,并且map
正在基于所选元素构建数组。如果您想要一个简单地“编辑”原始文档、保留顶级对象可能具有的任何其他键的解决方案,则以下选项将非常合适:
.TheArray |= map(select(.F1=="V11"))
变化
另一个:
del(.TheArray[] | select(.F1!="V11"))
如果您的jq版本比1.5版更新:
.TheArray[] |= select(.F1=="V11")
.TheArray[] |= select(.F1=="V11")