#json #jq
#json #jq
Вопрос:
Мне нужно отфильтровать JSON с помощью вложенной структуры, как показано ниже. Все объекты в массиве b, где атрибут x содержит «z» в значении x, должны быть отфильтрованы. Остальное должно оставаться в файле.
{
"a": {
"b": [
{
"c": "1",
"x": "aaa",
},
{
"c": "2",
"x": "aza",
},
{
"c": "7",
"x": "azb",
}
]
},
"d": {
"e": [
"1"
],
"f": [
"2"
]
}
}
Ожидаемый результат:
{
"a": {
"b": [
{
"c": "1",
"x": "aaa"
}
]
},
"d": {
"e": [
"1"
],
"f": [
"2"
]
}
}
Комментарии:
1. что вы пробовали до сих пор и каков ваш ожидаемый результат?
2. Ожидаемый результат jq должен быть: { «a»: { «b»: [ { «c»: «1», «x»: «aaa», }, ] }, «d»: { «e»: [ «1» ], «f»:[ «2» ] } }
Ответ №1:
используйте select
с contains
:
jq '.a.b|=[.[]|select(.x|contains("z")|not)]' file