将字段添加到数组元素中并保持原始结构
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" }
嗨,我有一个对象数组作为输入,例如
[{"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" }