У меня есть файл JSON, который выглядит примерно так:
{
"people": {
"company": "Acme",
"department": "Dev",
"perks": {
"eat": "pizza",
"drink": "beer",
"play": "twister"
},
"names": [{
"last_name": "Smith",
"first_names": [{
"name": "Bill"
},
{
"name": "Alice"
},
{
"name": "Mary"
}
]
},
{
"last_name": "Brown",
"first_names": [{
"name": "Gil"
},
{
"name": "Bob"
},
{
"name": "Mary"
}
]
},
{
"last_name": "Sanchez",
"first_names": [{
"name": "Gil"
},
{
"name": "Jose"
},
{
"name": "Marlena"
}
]
}
]
}
}
Вывод, который я ищу:
acme
Dev
twister
Smith, Bill
Smith, Alice
Smith, Mary
Brown, Gil
Brown, Bob
Brown, Mary
Sanchez, Gil
Sanchez, Jose
Sanchez, Marlena
У меня есть запрос jq, который получает имена:
jq -r '.people | .names[] | "\(.last_name), \(.first_names[].name)"'
И у меня есть запрос, который возвращает мне первые 3 строки (Acme, Dev, twister):
jq -r '.people | .company, .department, .perks.play'
Но когда я пытаюсь их объединить (слишком многоспособы перечислить здесь!) я получаю ошибку.Я не знаю, как их объединить, чтобы запрос прошел первый уровень ниже «.people», а затем уровень ниже «.people.names []» (все в одном запросе).