将字段添加到数组元素中并保持原始结构

Add field into an array element and keep the original structure

嗨,我有一个对象数组作为输入,例如

[{"keyA": "value"}, {"keyA": "otherValue"}...]

存储在 bash 环境变量中。我想保留整个数组,但 add/update 第一个元素的结果类似于

[{"keyA": "value", "newkey": "newvalue"}, {"keyA": "otherValue"}...]

我试过了

echo $a | jq '.[0]+{"newkey": "value"}'

但结果是

的单个元素
{"keyA": "value", "newkey": "newvalue"}
echo $a | jq '.,.[0]+{"newkey": "newvalue"}'

但结果是

[{"keyA": "value"}, {"keyA": "otherValue"}...] {"keyA": "value", "newkey": "newvalue"}

如何获取完整的数组输入集并更新第一个元素?

您需要在那里使用 update operator 以保留原始结构和内容。例如:

.[0] += { newkey: "newvalue" }