如何使用jq修改嵌套对象

Val*_*ain 11 json jq

鉴于这种

{
  "some": "property",
  "nested": {
    "hello": "world"
  }
}
Run Code Online (Sandbox Code Playgroud)

我想用jq得到这个结果

{
  "some": "property",
  "nested": {
    "hello": "world",
    "freshly": "added"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

Jef*_*ado 19

只需将新值分配给嵌套对象即可.

.nested.freshly = "added"
Run Code Online (Sandbox Code Playgroud)


Val*_*ain 5

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

jq '.nested=(.nested + {"freshly": "added"})'
Run Code Online (Sandbox Code Playgroud)