如何删除块。使用 jq 来自 json 的代码?

How to remove a block of. code from a json using jq?

我有一个 json 文件 temp.json 这样的 -

{
  "data": {
    "stuff": [
    .....
    ]
  },
  "time": {
    "metrics": 83
  }
}

我想从上面的 json 文件中删除这个特定的代码块 -

,
"time": {
  "metrics": 83
}

删除后我想在同一个文件中重写新的json,这样同一个文件中的新内容将是-

{
  "data": {
    "stuff": [
    .....
    ]
  }
}

这有可能做到吗?

注:一般情况下83号可以是任意号码

这里有一个很棒的教程:Baeldung: Guide to Linux jq Command for JSON Processing

也许你可以尝试这样的事情:jq 'del(.time)' temp.json > temp2.json.

请注意,jq 在语义 级别工作;这不仅仅是“文本替换”。因此,当您使用 jq 删除对象时,对象之间的“逗号”分隔符将从 JSON 文本中删除。

进行实验,看看哪种方法最适合您的特定场景。