мой ввод json выглядит следующим образом:
[{
"methodResponse":{
"params":{
"param":{
"value":{
"struct":{
"member":[
{
"name":"severity",
"value":{
"string":"Low"
}
},
{
"name":"product",
"value":{
"string":"p1"
}
}
]
}
}
}
}
}
}]
Я хочу извлечь каждую запись "члена" в новый объект json путем фильтрации по значению "name".
Вывод должен выглядеть следующим образом:
[
{
"severity": "Low",
"product": "p1"
}
]
Порядок элементов-членов может измениться.
Я могу выбрать значения по значению «имя», но это не работает, если упорядочен порядок элементов.
[.[].methodResponse.params.param.value.struct.member[] | select(.name == "severity").value.string, select(.name == "product").value.string] | [{severity:.[0], product:.[1]}]
Другая проблема заключается в том, что член не был найден по значению имени. если член не найден по имени, он должен напечатать ноль для значения отсутствующего члена-> «missingmemberName»: null
[
{
"severity": "Low",
"product": "p1",
"missingmemberName": null
}
]
https://jqplay.org/s/CthSsOCQ-Y
Спасибо за любая помощь