我有以下 JSON 数据结构:
{
"data": [
[
{
"a": "1",
"b": "i"
},
{
"a": "2",
"b": "ii"
},
{
"a": "3",
"b": "iii"
}
],
[
{
"a": "4",
"b": "iv"
},
{
"a": "5",
"b": "v"
},
{
"a": "6",
"b": "vi"
}
]
]
}
我需要得到以下输出:
1+2+3 i|ii|iii
4+5+6 iv|v|vi
我尝试了以下方法但没有成功:
$ cat data.json | jq -r '.data[] | .[].a | join("+")'
jq: error (at <stdin>:1642): Cannot iterate over string ("1")
还有这个,但我什至不知道如何解决这个问题:
$ cat data.json | jq -r '.data[] | to_entries | .[]'
此时对我来说似乎是一个无尽的旅程,我你能帮助我,我会很高兴。 :-)
最佳答案
应该很简单。将两个字段放入一个数组中,用所需的分隔符将它们连接起来,然后将其放入表格格式
jq -r '.data[] | [ ( map(.a) | join("+") ), ( map(.b) | join("|") ) ] | @tsv'
关于json - 使用jq解析数组并映射到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65184635/