Выберите атрибут JSON на основе других элементов в массиве с помощью JSONPath.

У меня есть образец массива JSON:

{
"data": {
    "list": [
        {
            "id": 192,
            "name": "John Black",
            "username": "jblack",
            "email": "[email protected]",
            "extern_uid": "user distinguished name"
        },
        {
            "id": 63,
            "name": "Jane Doe",
            "username": "jadoe",
            "email": "[email protected]",
            "extern_uid": "user distinguished name"
        }
    ]
}}

Я хочу извлечь атрибут на основе другого атрибута, используя выражение JSONPath,

Например:

Я хочу найти имя «Джейн Доу» и извлечь значения из массива Джейн Доу, такие как id: 63 или любое другое значение в массиве Джейн Доу. Возможно ли это в JSONPath? Я не эксперт в JSONPath, поэтому прошу прощения, если это может показаться тривиальным для других.

Спасибо всем


person masterful    schedule 11.02.2020    source источник


Ответы (1)


нашел решение:

$.data.list[?(@.username == "jblack")].id

Вернется:

"id": 192

person masterful    schedule 14.02.2020