我如何使用JQ平面化json行,其中每个是一个数组到每行一个项目?



我有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[]输出列表中的每个元素。

对于所示的示例,您可以尝试遵循jq代码。使用jq-r选项以原始形式发送输入。然后根据这里的要求适当地获取值。

jq -r '(.[] | .[].b)[]'  Input_file

输出如下:

x1
x2
y1
y2

相关内容

最新更新