JQ:映射不同长度的字段数组 [英] jq: map field array with different length
本文介绍了JQ:映射不同长度的字段数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用这些JSON:
{
"extension": [
{
"url": "url1",
"system": "system1"
},
{
"url": "url2",
"system": "system2"
}
]
}
{
"extension": [
{
"url": "url3",
"system": "system3"
}
]
}
如您所见,这两个JSON对象具有不同的.extension
长度。
我使用此命令是为了映射输入JSON:
jq --raw-output '[.extension[] | .url, .system] | @csv'
您可以找到jqplay here。
我明白了:
"url1","system1","url2","system2"
"url3","system3"
我想要的是:
"url1","system1","url2","system2"
"url3","system3",,
对如何正确映射这些字段有什么建议吗?
推荐答案
使用transpose | transpose
翻转表两次,以使用null
填充未装配的正方形形状中缺失的插槽:
jq -rs 'map(.extension) | transpose | transpose[] | map(.url, .system) | @csv'
"url1","system1","url2","system2"
"url3","system3",,
这篇关于JQ:映射不同长度的字段数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文