[英]jq - flatten parent objects into children
我有以下需要重塑的源 JSON:
{
"group": "A",
"name": "abc",
"events": [
{
"id": "54209",
"message": "foobar 1"
},
{
"id": "76548",
"message": "foobar 2"
}
]
}
{
"group": "B",
"name": "def",
"events": [
{
"id": "54593",
"message": "foobar 3"
},
{
"id": "20359",
"message": "foobar 4"
}
]
}
我怎样才能得到以下输出:
[
{
"group": "A",
"name": "abc",
"id": "54209",
"message": "foobar 1"
},
{
"group": "A",
"name": "abc",
"id": "76548",
"message": "foobar 2"
},
{
"group": "B",
"name": "def",
"id": "54593",
"message": "foobar 3"
},
{
"group": "B",
"name": "def",
"id": "20359",
"message": "foobar 4"
}
]
我基本上想要一个包含所有子事件数组的数组,但是它们的父对象嵌入到它们中。 我非常接近这个问题的一个例子: https : //github.com/stedolan/jq/issues/646 。 但我也需要密钥,而不仅仅是值。
与 Oguz 的答案几乎相同的逻辑,使用with_entries()
从根中删除事件并单独添加字段
jq -n '[ inputs | with_entries(select(.key != "events")) + (.events[]) ]'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.