Eu tenho o documento JSON abaixo da API REST do Junos. Estou tentando simplificar o documento para apenas alguns itens selecionados. Como eu conseguiria isso?
JSON esperado:
[
{ "status": .member-status[0].data,
"serial": .member-serial-number[0].data,
"slot": .fpc-slot[0].data
},
...
]
JSON original:
{
"member-status": [
{
"data": "Prsnt"
}
],
"member-id": [
{
"data": "0"
}
],
"fpc-slot": [
{
"data": "(FPC 0)"
}
],
"member-serial-number": [
{
"data": "serNo1"
}
],
"member-model": [
{
"data": "ex4400-24t"
}
],
"member-priority": [
{
"data": "255"
}
],
"member-mixed-mode": [
{
"data": "N"
}
],
"member-route-mode": [
{
"data": "VC"
}
],
"member-role": [
{
"data": "Master*"
}
],
"neighbor-list": [
{}
]
}
{
"member-status": [
{
"data": "NotPrsnt"
}
],
"member-id": [
{
"data": "1"
}
],
"fpc-slot": [
{
"data": "(FPC 1)"
}
],
"member-serial-number": [
{
"data": "serNo2"
}
],
"member-model": [
{}
]
}
Deve ser algo como:
Ou fatorando um pouco o código:
O que na sua amostra dá:
-s
agrupa os vários JSONs concatenados na entrada em uma matriz JSON emap()
mapeia o objeto especificado para cada membro. Como alternativamap({...})
, você também pode fazer[ .[] | {...} ]
itera sobre os membros da matriz e cria uma nova matriz a partir do resultado.