You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jq合并无共享键的连续JSON对象?

纯jq实现成对合并数组元素的方案

直接用jq内置的_nwise/1函数就能搞定,它专门用来把数组按指定数量分成连续的子组,再结合add就能合并每组里的两个元素:

处理字符串数组的例子

输入JSON:

["a","b","c","d"]

执行命令:

jq '[_nwise(2) | add]'

输出结果:

["ab","cd"]

处理对象数组的例子(你的实际场景)

输入JSON:

[{"id":1,"name":"obj1"},{"meta":"extra1"},{"id":2,"name":"obj2"},{"meta":"extra2"}]

执行同样的命令:

jq '[_nwise(2) | add]'

输出结果:

[{"id":1,"name":"obj1","meta":"extra1"},{"id":2,"name":"obj2","meta":"extra2"}]

兼容旧版jq的方案(如果你的jq版本没有_nwise)

如果用的是jq 1.5及更早版本,没有内置_nwise,可以手动通过索引遍历实现:

jq '[range(0; length; 2) | . as $i | .[$i] + .[$i+1]]'

这个命令通过步长为2的索引遍历数组,每次取当前索引和下一个索引的元素,用+合并(对象合并、字符串拼接都适用),最后把结果收集成新数组。

内容的提问来源于stack exchange,提问作者lynxlynxlynx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 18:34:57