问题描述
我有这个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的所有当前可用版本都支持它,这远远超出了类似替代方案......