想要使用JQ向JSON添加更多父键

问题描述

我有这个JSON:

[
  {
    "key1": "value1","key2": "value2","key3": "value3","key4": "value4,"key5": {
      "subkey1": "subvalue1","subkey2": "subvalue2","subkey3": "subvalue3"
    }
  }
]

我想使用JQ构建新的JSON,并添加更多项,让我解释一下,我想得到这个:

{
  "NEWKEY1": "NEWVALUE2","NEWKEY2": [
    {
      "NEWKEY3": "UPSNEWVALUE3","NEWKEY4": {
        "key1": "value1","key5": {
          "subkey1": "subvalue1","subkey3": "subvalue3"
        }
      }
    }
  ]
}

我怎么能得到那个?

谢谢

解决方法

如果data.json包含新数据,而template.json包含具有NEWKEY1等的模板,则以下调用将产生所需的输出:

jq --argfile in data.json '.NEWKEY2[0].NEWKEY4 = $in[0]' template.json

Quibble

是的,我知道jq手册已弃用--argfile,因此可以使用许多替代方法之一,但是jq的所有当前可用版本都支持它,这远远超出了类似替代方案......

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...