У меня есть несколько следующих json объектов, которые я бы хотел отфильтровать с помощью одной команды jq
.
[
{
"version": "v2",
"transactionId": "10590541.2280012772",
"description": {
"original": "DUMMY",
"sanitized": "DUMMY A.B. C"
}
}
]
или
[
{
"version": "v2",
"transactionId": "10590541.2280012772",
"description": {
"original": "DUMMY",
"sanitized": "DUMMY A.B. C"
},
"merchantDetails": {
"name": "DUMMY"
}
}
]
или
[
{
"version": "v2",
"transactionId": "10590541.2280012772",
"merchantDetails": {
"name": "DUMMY"
}
}
]
Я пытаюсь отфильтровать с помощью jq
, поэтому любой из вышеперечисленных json объектов удовлетворяет условию фильтра. Другими словами, если существуют и .merchantDetails.name
, и .description.sanitized
, тогда .merchantDetails.name
должен иметь приоритет при проверке строки "DUMMY". Если нет, то проверьте .merchantDetails.name
или .description.sanitized
на наличие строки "DUMMY".
В настоящее время у меня есть следующее, что на самом деле не работает.
jq . test.json | jq '.[] | select( (.merchantDetails.name | try contains ("DUMMY")) or (.description.sanitized | try contains ("DUMMY")) )'
В любом случае, чтобы добиться этого с помощью одной встроенной команды jq
?