根据条件从数组中删除对象

时间:2020-04-28 16:49:52

标签: json jq

{
   "name": "ford",
   "availableVersions": [
      {
         "version": 111,
         "count": 3
      },
      {
         "version": 122,
         "count": 2
      },
      {
         "version": 133,
         "count": 3
      }
                          ],
       "RealVersion": 133


}
{
   "name": "bmw",
   "availableVersions": [
     {
         "version": 144,
         "count": 1
     },
     {
      "version": 155,
      "count": 3
     }                  ],
     "RealVersion": 120

}

我现在if (count == 3)有这个demo.json文件。我想删除计数和各自版本的键值对。所以我的输出应该是这样的。我正在使用jq解析json文件

输出-

{
   "name": "ford",
   "availableVersions": [
      {
         "version": 122,
         "count": 2
      }
                          ],
       "RealVersion": 133


}
{
   "name": "bmw",
   "availableVersions": [
     {
         "version": 144,
         "count": 1
     }                  ],
     "RealVersion": 120

}

cat demo1 | jq .availableVersions[] | jq 'select(.count == 3)'

我正在使用此命令,它将选择计数和相应的版本,但是我不确定如何删除它。有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

只需重新映射availableVersions即可选择count不是3的对象。

.availableVersions |= map(select(.count != 3))

Online demo