【发布时间】:2022-01-13 05:54:05
【问题描述】:
考虑以下深度嵌套的json对象
[
{
"level1key": "level1value",
"children": [
{
"level2key": "level2value1",
"children": [
{
"level3key1": "ignored",
"level3key2": "ignored",
"level3key3": [
{
"level4key": "ignored"
}
]
},
{
"level3key1": "level3value1",
"level3key2": "level3value22",
"level3key3": [
{
"level4key": "level4value1"
}
]
},
{
"level3key1": "level3value2",
"level3key2": "level3value22",
"level3key3": [
{
"level4key": "level4value2"
}
]
}
]
},
{
"level2key": "level2value2",
"children": [
{
"level3key1": "ignored",
"level3key2": "ignored",
"level3key3": [
{
"level4key": "ignored"
}
]
},
{
"level3key1": "level3value3",
"level3key2": "level3value22",
"level3key3": [
{
"level4key": "level4value3"
}
]
},
{
"level3key1": "level3value4",
"level3key2": "level3value22",
"level3key3": [
{
"level4key": "level4value4"
}
]
}
]
}
]
}
]
我需要通过.[0].children[].children[].level3key2 的“level3value22”进行过滤,并将这个深度嵌套的 json 对象展平为一个数组。预期结果如下。 jq句子应该怎么写?
[
{
"v1": "level1value",
"v2": "level2value1",
"v3": "level3value1",
"v4": "level4value1"
},
{
"v1": "level1value",
"v2": "level2value1",
"v3": "level3value2",
"v4": "level4value2"
},
{
"v1": "level1value",
"v2": "level2value2",
"v3": "level3value3",
"v4": "level4value3"
},
{
"v1": "level1value",
"v2": "level2value2",
"v3": "level3value4",
"v4": "level4value4"
}
]
提前致谢!
【问题讨论】: