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

如何用JQ按索引顺序将JSON数组对象对应添加到目标JSON?

解决方案

你需要让masterfile.json里value数组的第n个元素,对应newValArr的第n个对象,核心是给两个数组的元素按索引配对。原来的脚本每次都取$newvalues[0],所以所有元素都用了第一个对象,改一下JQ逻辑就行。

方法一:索引遍历法

直接通过索引定位两个数组的对应元素,修改value数组:

jq --argjson newvalues "${newValArr}" '.value |= (range(length) as $i | .[$i].properties.newObject = $newvalues[$i])' masterfile.json > newoutput.json
  • range(length)生成和数组长度匹配的索引序列
  • 对每个索引$i,把value[$i]的properties.newObject设为$newvalues[$i]

方法二:数组转置配对法

把两个数组转置后配对,再修改元素:

jq --argjson newvalues "${newValArr}" '.value = ($newvalues, .value) | transpose | map(.[1].properties.newObject = .[0] | .[1])' masterfile.json > newoutput.json
  • ($newvalues, .value)把两个数组打包成二维数组
  • transpose转置后,每个子数组变成[newValArr元素, value数组元素]
  • map遍历每一组,给第二个元素(原value元素)添加newObject,再提取处理后的原元素重新赋值给.value

两种方法都能实现按索引对应赋值,前提是你确认两个数组长度完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 17:17:27