我有一个以下格式的json文件
{
"a": [
[
{
"p": "p1-value",
"d": "d1-value"
},
{
"p": "p2-value",
"d": "d2-value"
}
],
[
{
"p": "p3-value",
"d": "d3-value"
}
]
],
"z": [
[
{
"p": "p1-value",
"d": "d1-value"
}
]
]
}
我想知道如何输出这样的东西
a p1-value
a p2-value
a p3-value
z p1-value
我尝试了一些不同的 jq 查询,但我无法让它工作。
我知道我可以在顶层使用“keys[]”,但这并没有给我任何低于它的东西。我已经尝试过
."a" | .[] | .[] | .path
但这意味着我必须指定每个顶级密钥..
谢谢
to_entries
创建键值对数组,您可以使用 .key
和 .value
来访问该数组:
to_entries[] | "\(.key) \(.value[][].p)"
keys_unsorted
仅获取键,使用 as
将它们绑定到变量,并使用变量访问字段:
keys_unsorted[] as $key | "\($key) \(.[$key][][].p)"
在这两种情况下,我都使用字符串插值
"\(…)"
来构造最终值,但根据您的处理管道,可能有更好的方法。