需要找到基于sku的产品ID

时间:2017-11-18 14:03:57

标签: json select jq

我有以下json对象 -

{
  "formatVersion": "v1.0",
  "publicationDate": "2017-11-17T19:00:39Z",
  "products": {
    "HYZTQKMNAKH6FG9C": {
      "sku": "HYZTQKMNAKH6FG9C",
      "productFamily": "Compute Instance"
    },
    "2BEAK4F883TCCQMS": {
      "sku": "2BEAK4F883TCCQMS",
      "productFamily": "Compute2 Instance"
    },
    "7QJJXQX9QWC5GEPD": {
      "sku": "7QJJXQX9QWC5GEPD",
      "productFamily": "Compute3 Instance"
    }
  }
}

在jq的帮助下,我需要找出基于特定关键字搜索的所有sku,例如.productFamily == "Compute Instance"

我有以下jq过滤器,但它没有给我任何输出 -

jq --raw-output '.products.""| select(.productFamily=="Compute Instance") | .sku'

有人可以帮我这个吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

将看起来很奇怪的.””更改为[]

这已被证实适用于jq 1.3,1.4,1.5和当前的“主”版本,例如

jq1.3 '.products[] | select(.productFamily=="Compute Instance") | .sku' sku.json
"HYZTQKMNAKH6FG9C"

答案 1 :(得分:-1)

jq --raw-output '.products | map(select(.productFamily=="Compute Instance")) | .[].sku'