我有以下格式的json文件
{
"l1":"",
"values":{
"id1":{
"name":"abc",
"enabled":"true"
},
"id2":{
"name":"def",
"enabled":"true"
},
"id3":{
"name":"jjj"
}
}
}
我想基于父键添加/更新json对象的启用状态。所以,例如:我有一个下面内容的文件。
id1 false
id2 true
id3 false
id4 false
我希望我的输出如下所示:
{
"l1":"",
"values":{
"id1":{
"name":"abc",
"enabled":"false"
},
"id2":{
"name":"def",
"enabled":"true"
},
"id3":{
"name":"jjj",
"enabled":"false"
}
}
}
jq版本:1.5
您可以只创建要更新的ID和更新值的映射。然后使用该映射更新相应的值。
$ jq --argjson m '{"id1":"false","id2":"true","id3":"false","id4":"false"}' '
.values |= with_entries(.value.enabled = $m[.key])
' input.json