Я пытаюсь написать фильтр JQ, позволяющий выборочно фильтровать свойства объекта на основе других его значений.JQ удалить свойство на основе другого значения свойства
Например, при следующем входе
{
"object1": {
"Type": "Type1",
"Properties": {
"Property1": "blablabla",
"Property2": [
{
"Key": "Name",
"Value": "xxx"
},
{
"Key": "Surname",
"Value": "yyy"
}
],
"Property3": "xxx"
}
},
"object2": {
"Type": "Type2",
"Properties": {
"Property1": "blablabla",
"Property2": [
{
"Key": "Name",
"Value": "xxx"
},
{
"Key": "Surname",
"Value": "yyy"
}
],
"Property3": "xxx"
}
}
}
Я хотел бы построить фильтр, который в зависимости от типа объекта, скажем, «TYPE2», удаляет или очищает свойство этого объекта, скажем, свойство2. Результирующий выходной сигнал будет затем:
{
"object1": {
"Type": "Type1",
"Properties": {
"Property1": "blablabla",
"Property2": [
{
"Key": "Name",
"Value": "xxx"
},
{
"Key": "Surname",
"Value": "yyy"
}
],
"Property3": "xxx"
}
},
"object2": {
"Type": "Type2",
"Properties": {
"Property1": "blablabla",
"Property3": "xxx"
}
}
}
Любая помощь высокую оценку. Заранее спасибо.
Спасибо. Кажется, что это нормально для точных совпадений. Возможно ли это для регулярных выражений? Я пытаюсь: '. [" Resources "] | (. [] | Select (.Type | match (" type2 ";" i ")?)). Свойства | = del (.Property2)' Это, похоже, не работает. –
В этом случае вы хотели бы использовать 'test', но похоже, что при использовании фильтров регулярных выражений возникает проблема с приоритетом. 'Неверное выражение пути рядом с попыткой доступа к элементу" Свойства "...' Кажется, это делается только при попытке выполнить обновление/переназначение. Кажется, это ошибка в парсере для меня. –