如何使用 jq 修改嵌套对象

How to modify a nested object with jq

鉴于此

{
  "some": "property",
  "nested": {
    "hello": "world"
  }
}

我想用 jq 得到这个结果

{
  "some": "property",
  "nested": {
    "hello": "world",
    "freshly": "added"
  }
}

那么如何添加新添加的字段呢?我不知道根级别有多少属性(我想保留所有属性),我只知道嵌套对象的名称(这里是 "nested"),属性 的名称我想添加(此处 "freshly")及其值。

好吧,我自己找到了方法。如果您有更好的解决方案,欢迎在此提出。

jq '.nested=(.nested + {"freshly": "added"})'

只需将新值赋给嵌套对象即可。

.nested.freshly = "added"

你也可以简单的做

.nested += {freshly: "added"}

然后您可以一次添加多个嵌套键