首页 > 解决方案 > 如何使用 JQ 从 JSON 中删除不必要的项目?

问题描述

我需要这个:(示例)

{
  "jobs": [
      {},
      {}
    ],
  "services": {
    "service-1": {
      "version": "master"
    },
    "service-2": {
      "foo": true,
      "version": "master"
    },
    "service-3": {
      "bar": "baz"
    }
  }
}

做这个:

{
  "services": {
    "service-1": {
      "version": "master"
    },
    "service-2": {
      "version": "master"
    }
  }
}

所以删除除.services.*.version. 请帮忙,以我对JQ的了解无法处理。

标签: jsonjqobject-slicing

解决方案


如果您希望区分“版本”不存在或为空:

{services}
| .services |= map_values(select(has("version")) | {version} )

推荐阅读