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

时间:2020-10-24 05:05:02

标签: arrays json add jq

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

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

存储在bash环境变量中。我想保留整个数组,但添加/更新第一个具有类似结果的元素

[{"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"}

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

1 个答案:

答案 0 :(得分:1)

您需要在此处使用update operator来保留原始结构和内容。例如:

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