Предположим JSON ниже, описывающий список книг. Каждая книга имеет свойство characters
, которое является массивом символьных объектов. Я хочу выбрать книгу на основе имени персонажа.
$..characters[?(@.name == 'Mer Cury')]
возвращает блок:
{
"name": "Mer Cury",
"sex": "unknown"
}
Поэтому я предположил, что следующее будет работать, но это не так: $.book[?(@.characters[?(@.name == 'Mer Cury')])]
. Я также пытался использовать $.book[?(@.characters.some(c => c.name === 'Mer Cury'))]
, но это тоже не сработало.
Есть идеи, как вернуть родительский элемент на основе свойства элемента в массиве свойств?
{
"books": [
{
"title": "Best Book Ever",
"author": "F. Ready",
"pages": "16",
"characters": [
{
"name": "Mer Cury",
"sex": "unknown"
},
{
"name": "Father B.",
"sex": "male"
}
]
},
{
"title": "Are You Reading To Me?",
"author": "Al Paca",
"pages": "280",
"characters": [
{
"name": "Joe Banana",
"sex": "male"
},
{
"name": "An Anas",
"sex": "female"
}
]
}
]
}