如何合并两个JSON数组变量?
大多数谷歌搜索显示了文件,但我想使用变量来完成。在文档中尝试了一些事情,但我找不到正确的过滤器或功能,或者不确定我的方法是否有意义。
var1='[
{"a":"1","b":"2","c":"3"},
{"a":"4","b":"5","c":"6"},
{"a":"7","b":"8","c":"9"}
]'
var2='[
{"d":"x","e":"y"},
{"d":"z","e":"q"},
{"d":"w","e":"v"}
]'
我想要的结果是,
'[
{"a":"1","b":"2","c":"3","d":"x","e":"y"},
{"a":"4","b":"5","c":"6","d":"z","e":"q"},
{"a":"7","b":"8","c":"9","d":"w","e":"v"}
]'
如果我使用
jq -n --argjson var1 "$var1" --argjson var2 "$var2" '$var1 + $var2'
它,则只需在所有6个对象中就可以使一个更大的数组,而不是3个较长的对象,
错误的。
如果我使用*
或| =
它给出了错误,我是 甚至不确定是我需要的过滤器还是内置功能(地图似乎没有这样做)
Most of the googling shows it with files but I want to do it with variables. Tried a few things with the documentation but I can't find the right filter or function or not sure If my approach even makes sense.
var1='[
{"a":"1","b":"2","c":"3"},
{"a":"4","b":"5","c":"6"},
{"a":"7","b":"8","c":"9"}
]'
var2='[
{"d":"x","e":"y"},
{"d":"z","e":"q"},
{"d":"w","e":"v"}
]'
The result I want is
'[
{"a":"1","b":"2","c":"3","d":"x","e":"y"},
{"a":"4","b":"5","c":"6","d":"z","e":"q"},
{"a":"7","b":"8","c":"9","d":"w","e":"v"}
]'
If i use
jq -n --argjson var1 "$var1" --argjson var2 "$var2" '$var1 + $var2'
it just makes a bigger array with all 6 objects, not 3 longer ones
If I use *
or |=
it gives errors
I'm not even sure if it's a filter I need or a builtin function (map doesn't seem to be doing this)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用
transpose
将两个输入数组中的元素对齐,然后add
与双方结合:Use
transpose
to align the elements from both input arrays, thenadd
to combine both sides: