如何使用jq为数组中的对象添加键值对
解决jq处理后结果未包裹为标准JSON数组的问题
你的问题出在使用.[]迭代数组元素时,jq会把每个元素单独输出,而不会自动将它们重新组合成数组结构。要让结果符合标准JSON数组格式,只需要把整个处理逻辑用[]包裹起来,让jq将处理后的元素重新打包成数组。
正确命令
echo '[{"a": "A", "b": "B"}, {"c": "C", "d": "D"}]' | jq '[.[] + {x:"X"}]'
执行结果
[ { "a": "A", "b": "B", "x": "X" }, { "c": "C", "d": "D", "x": "X" } ]
原理说明
.[]负责遍历原数组中的每个对象,并给每个对象添加x: "X"属性- 外层的
[]会将所有处理后的对象收集起来,组合成一个新的JSON数组,自动处理元素间的逗号和外层的括号,确保输出符合标准JSON格式
内容的提问来源于stack exchange,提问作者Wakan Tanka
相关产品推荐
相关产品推荐

