Arrays 将列数组转换为行对象数组

Arrays 将列数组转换为行对象数组,arrays,json,object,jq,transpose,Arrays,Json,Object,Jq,Transpose,我有一个json文件,它表示一个有两列的表 列值位于数组中 { 'columnA':[1,2,3], “columnB”:[6,7,8] } 我需要将其转换为行数组: [ {'columnA':1,'columnB':6}, {'columnA':2,'columnB':7}, {'columnA':3,'columnB':8}, ]这里有一个解决方案: [range(0; .columnA|length) as $i | {columnA: .columnA[$i], columnB: .c

我有一个json文件,它表示一个有两列的表

列值位于数组中

{
'columnA':[1,2,3],
“columnB”:[6,7,8]
}

我需要将其转换为行数组:

[
{'columnA':1,'columnB':6},
{'columnA':2,'columnB':7},
{'columnA':3,'columnB':8},
]

这里有一个解决方案:

[range(0; .columnA|length) as $i
 | {columnA: .columnA[$i], columnB: .columnB[$i]}]
还有一个是keyname中性的,应该适用于任意数量的“列”:


使用
转置
内置:

[ [{columnA: .columnA[]}],
  [{columnB: .columnB[]}]
] | transpose | map(add)
我想出来了:

[.columnA,.columnB]|转置|映射({“columnA:[0],“columnB:[1]})

  • 转换为数组的数组
  • 转置
  • 转换回对象

  • 你为自己做了什么?纯JSON不为键字段使用单引号
    转置
    会导致错误:无法使用数字索引对象,强制使用
    到\u项的字符串键
    甚至
    映射(到\u项)
    没有导致任何有用的内容,但是
    map
    只会写入一列,不会导致对第二列的任何键访问谢谢。有许多答案可以得出相同的结果。这是第一次接受,谢谢。有许多答案可以得出相同的结果。我已经接受了第一种方法,尽管我喜欢这种方法!
    [ [{columnA: .columnA[]}],
      [{columnB: .columnB[]}]
    ] | transpose | map(add)