Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 如何使用jq修改嵌套对象_Json_Jq - Fatal编程技术网

Json 如何使用jq修改嵌套对象

Json 如何使用jq修改嵌套对象,json,jq,Json,Jq,鉴于此 { "some": "property", "nested": { "hello": "world" } } 我想通过jq得到这个结果 { "some": "property", "nested": { "hello": "world", "freshly": "added" } } 那么如何添加新添加的字段呢?我不知道有多少属性在根级别(我想保留它们),我只知道嵌套对象的名称(这里是“嵌套的”)、我想添加的属性的名称(这里是“新添加的

鉴于此

{
  "some": "property",
  "nested": {
    "hello": "world"
  }
}
我想通过jq得到这个结果

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

那么如何添加新添加的字段呢?我不知道有多少属性在根级别(我想保留它们),我只知道嵌套对象的名称(这里是“嵌套的”)、我想添加的属性的名称(这里是“新添加的”)及其值。

我自己找到了如何做的方法。如果你有更好的解决方案,欢迎你在这里提出

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

只需将新值指定给嵌套对象

.nested.freshly = "added"
你也可以简单地做

.nested += {freshly: "added"}

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

,而Jeff的答案更切中要害,这在以其他方式生成包含关键点的地图时也非常有用。也就是说,我只需将其写成
.nested+={“新鲜”:“added”}