如何使用 JQ 将每个都是数组的 JSON 行展平为每行一个项目?
How do I use JQ to flatten JSON-lines where each is an array into an item-per-line?
我在底部有 JSON。如果我将它发送到 jq '.a[].b
我会得到
[
"x1",
"x2"
]
[
"y1",
"y2"
]
如何改为逐行输出,没有括号、引号或逗号,如下所示:
x1
x2
y1
y2
输入JSON是:
{
"a": [
{
"b": [
"x1",
"x2"
],
"z": "z"
},
{
"b": [
"y1",
"y2"
],
"w": "w"
}
]
}
对每个 b
执行与对每个 a
相同的操作。使用 -r
选项获取原始文本,而不是 JSON 字符串值。
% jq -r '.a[].b[]' tmp.json
x1
x2
y1
y2
即.b
输出列表; .b[]
输出列表的每个元素。
我在底部有 JSON。如果我将它发送到 jq '.a[].b
我会得到
[
"x1",
"x2"
]
[
"y1",
"y2"
]
如何改为逐行输出,没有括号、引号或逗号,如下所示:
x1
x2
y1
y2
输入JSON是:
{
"a": [
{
"b": [
"x1",
"x2"
],
"z": "z"
},
{
"b": [
"y1",
"y2"
],
"w": "w"
}
]
}
对每个 b
执行与对每个 a
相同的操作。使用 -r
选项获取原始文本,而不是 JSON 字符串值。
% jq -r '.a[].b[]' tmp.json
x1
x2
y1
y2
即.b
输出列表; .b[]
输出列表的每个元素。