【问题标题】:Remove multiple entries from an array of objects using jq使用 jq 从对象数组中删除多个条目
【发布时间】:2021-12-16 15:50:12
【问题描述】:

我有以下 json 并且想从 ebooks 数组中删除多个条目,如果它们不在以下数组 ["Pascal", "Python"] 中(最终将是动态数组,这只是示例)

{
   "eBooks":[
      {

         "language":"Pascal",
         "edition":"third"
      },
      {
         "language":"Python",
         "edition":"four"
      },
      {
         "language":"SQL",
         "edition":"second"
      }
   ]
}

希望做这样的事情,如果它有效,它将删除包含 SQL 的最后一个,因为它不在数组中,但这不起作用

jq '.ebooks[] | select ( .language | in(["Pascal", "Python"]))' ebooks.json

【问题讨论】:

    标签: jq


    【解决方案1】:

    你快到了。在eBooks 中使用delIN 和大写B :)

    jq 'del(.eBooks[] | select(.language | IN("Pascal", "Python")))' ebooks.json
    
    {
      "eBooks": [
        {
          "language": "SQL",
          "edition": "second"
        }
      ]
    }
    

    Demo

    【讨论】:

    • 太棒了,谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多