Я хочу извлечь JSON блок, удовлетворяющий нескольким условиям. Например, извлеките блок, в котором есть переменные с двумя или более желаемыми значениями. См. Приведенный ниже пример.
[
{
id:"1",
name:"ABC - Project 1",
appName:"XYZ",
state:"New",
appType:"owner",
date:"May 12"
},
{
id:"2",
name:"DEF - Project 2",
appName:"UVW",
state:"In Progress",
appType:"manager",
date:"May 13"
},
{
id:"3",
name:"GHI - Project 3",
appName:"RST",
state:"In Progress",
appType:"owner",
date:"May 12"
},
{
id:"4",
name:"JKL - Project 4",
appName:"OPQ",
state:"Expired",
appType:"entity owner",
date:"July 13"
}
]
Из приведенного выше JSON я хочу извлечь блок JSON, в котором состояние: «Выполняется» или состояние: «Новый», любое из этих состояний и он должен иметь тип appType: "Owner" вместе с именем: ... Project 1; то есть следующие блоки в качестве вывода:
{
id:"1",
name:"ABC - Project 1",
appName:"XYZ",
state:"New",
appType:"owner",
date:"May 12"
}
Какие JSON выражения пути, которые я должен использовать для извлечения:
$.[?((@.state == "In Progress" || @.state == "New") && @.appType== "owner" && <some regex expression>)]
Но он не извлекает никаких результат. Есть ли способ использовать несколько условий для "OR / ||" и условие «И / &&» для извлечения этого конкретного блока. Пожалуйста, помогите!
Спасибо, Сид