给定一个JSON对象数组:
{
"header" : {
"user" : "baskar"
},
"requests" : [ {
"first_name" : "mike",
"last_name" : "mat"
}, {
"first_name" : "mike1",
"last_name" : "mat"
} ],
"check" : [ "Y" ]
}
我想基于所述条件从所述嵌套的请求中提取键/值的子集,同时从外部对象完好保持其它性质,制造这样的:当我寻找如first_name =“麦克”
{
"header" : {
"user" : "baskar"
},
"requests" : [ {
"first_name" : "mike",
"last_name" : "mat"
} ],
"check" : [ "Y" ]
}
我尝试了以下的事情,
[.requests[] | select(.first_name == "mike")]
但是,它给出了匹配请求的子集,但没有返回header和check元素。
我确信必须有一个相当简单的方法来实现这个jq。帮助赞赏。
答案 0 :(得分:3)
您需要通过过滤更新请求数组来考虑它。
这应该有效:
.requests |= map(select(.first_name == "mike"))