【问题标题】:How to modify a nested object with jq如何用 jq 修改嵌套对象
【发布时间】:2015-07-29 07:40:16
【问题描述】:

鉴于此

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

我想用 jq 得到这个结果

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

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

【问题讨论】:

    标签: json jq


    【解决方案1】:

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

    .nested.freshly = "added"
    

    【讨论】:

      【解决方案2】:

      好吧,我自己发现了该怎么做。如果您有更好的解决方案,非常欢迎您在这里提供。

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

      【讨论】:

      • 虽然 Jeff 的回答更中肯,但当包含键的地图以其他方式生成时,这也非常有用。也就是说,我会写成.nested += {"freshly": "added"}
      【解决方案3】:

      你也可以这样做

      .nested += {freshly: "added"}
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-21
        • 1970-01-01
        • 2020-05-04
        • 2020-05-06
        • 2021-10-27
        相关资源
        最近更新 更多