嗨,我在玩jq时遇到了问题。
这是我的数据
{
"auctionInfo": [{
"tradeId": 229143000306,
"itemData": {
"id": 320854114832,
"rating": 82
}
},
{
"tradeId": 229143000307,
"itemData": {
"id": 320854114833,
"rating": 84
}
},
{
"tradeId": 229143000308,
"itemData": {
"id": 320854114834,
"rating": 84
}
}
]
}
我现在想要的是等级为84的all tradeID。
所以我尝试使用此过滤器:
| jq -r .auctionInfo[].itemData | select(.rating==84)
但是,使用此过滤器,我位于itemData中,无法访问我感兴趣的tradeId。我对jq并不是很熟悉,所以这可能是一个基本问题,但是如何从使用此过滤器的地方到达tradeId?
答案 0 :(得分:2)
我认为您需要做的是在下面。逻辑是您需要列出所有数组对象,过滤等级值以获得子集,并为这些对象打印tradeId
jq '.auctionInfo[] | select(.itemData.rating == 84).tradeId'