Как отфильтровать массив объектов по значению элемента в Json в JQ - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь получить значение из Json, используя JQ.

Мне нужно получить идентификатор из inputJson, (activeItem) и использовать этот идентификатор, чтобы получить имя элемента из списка элементов.ниже.

Можно ли это сделать в одном запросе?

{
"amazon": {
"activeitem" : 2, 
"items": [
  {
    "id" : 1,
    "name": "harry potter",
    "state": "sold"
  },
  {
    "id" : 2,
    "name": "adidas shoes",
    "state": "in inventory"
  },
  {
    "id" : 3,
    "name": "watch",
    "state": "returned"
  }
]
}
}

Теперь я получаю значение первым и выполняю фильтрацию, вместо этого я хочу сделать это в одном запросе.

1 Ответ

0 голосов
/ 28 декабря 2018

С вашими данными фильтр:

.amazon
| .activeitem as $id
| .items[]
| select(.id == $id)
| .name

создает:

"adidas shoes"

(используйте параметр командной строки -r, если вы хотите необработанную строку.)

...