【问题标题】:jq filter objects with specific values and get Id of parent objectjq过滤具有特定值的对象并获取父对象的ID
【发布时间】:2019-04-19 14:38:14
【问题描述】:

您好,我在玩 jq 并且遇到了问题。

这是我的数据:

{
    "auctionInfo": [{
            "tradeId": 229143000306,
            "itemData": {
                "id": 320854114832,
                "rating": 82
            }
        },
        {
            "tradeId": 229143000307,
            "itemData": {
                "id": 320854114833,
                "rating": 84
            }
        },
        {
            "tradeId": 229143000308,
            "itemData": {
                "id": 320854114834,
                "rating": 84
            }
        }
    ]
}

我现在想要的是评分为 84 的所有 tradeIds。

所以我用这个过滤器试了一下:

| jq -r .auctionInfo[].itemData | select(.rating==84)

但是使用这个过滤器,我在 itemData 中,无法访问我感兴趣的 tradeId。我对 jq 不是很熟悉,所以可能是一个基本问题,但我如何才能从我所在的过滤器到达 tradeId?

【问题讨论】:

    标签: json filter jq


    【解决方案1】:

    我想你需要做的就在下面。逻辑是您需要列出所有数组对象,过滤评级值以获取子集并为这些对象打印tradeId

    jq '.auctionInfo[] | select(.itemData.rating == 84).tradeId'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 2020-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 2023-02-23
      相关资源
      最近更新 更多