Given this input
{
"data": [
{
"id": "001",
"metadata": {
"item1": 1
},
"records": [
{
"name": "name1",
"type": "type1"
},
{
"name": "name2",
"type": "type2"
}
]
},
{
"id": "002",
"metadata": {
"item1": 1
},
"records": [
{
"name": "name1",
"type": "type1"
}
]
},
{
"id": "003",
"metadata": {},
"records": [
{
"name": "name1",
"type": "type1"
},
{
"name": "name2",
"type": "type2"
}
]
}
]
}
I am trying to output this
[
{
"id": "001",
"Item1": 1,
"Name": "name2"
},
{
"id": "002",
"Item1": 1,
"Name": null
},
{
"id": "003",
"Item1": null,
"Name": "name2"
}
]
However using this
jq '[.data[] | {id, "Item1": .metadata.item1, "Name": .records[] | select(.type == "type2").name}]'
jq query I am getting this
[
{
"id": "001",
"Item1": 1,
"Name": "name2"
},
{
"id": "003",
"Item1": null,
"Name": "name2"
}
]
How can I get the '002' id object to output as well? I have tried various if then else conditions statements but to no avail.