Получить первый элемент json с определенным идентификатором в массиве JSON - Microsoft Flow

У меня есть действие Parse JSON со следующей схемой:

{
    "type": "object",
    "properties": {
        "employees": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "email"
                ]
            }
        }
    }
}

И пример входной строки JSON:

{
  "employees": [
    {
      "id": "1111",
      "email": "email1@gmail.com"
    },
    {
      "id": "2222",
      "email": "email2@gmail.com"
    }
  ]
}

Чтобы получить список сотрудников, я использую:

body('Parse_JSON')?['employees']

Как получить электронную почту emloyee с id знак равно 2222?

Примечание. Я могу изменить схему JSON, если потребуется.

0 ответов

Я наткнулся на ваш вопрос год спустя, но до сих пор не нашел подходящего способа ответить. В итоге я использовалFilter Array шаг (в разделе Операции с данными)

Затем вы можете применить здесь условия фильтрации. напримерid = 1111

Это по-прежнему возвращает массив, но тогда я могу использовать Compose операция по получению first()элемент массива. Я также пользуюсь этой возможностью, чтобы использоватьcoalesce() чтобы установить значение по умолчанию, если значение не найдено:

coalesce(first(body('Filter_array')).value, 10000)

Цикл по массиву и "Фильтруемый массив", чтобы оставить только элемент массива, который соответствует 'id' = 2222. Должен иметь только один элемент, если список был уникальным. Если несколько записей, фильтр по другому значению.

Создать переменную.

Затем посмотрите на отфильтрованный массив и установите для переменной значение, которое есть в элементах массива. Имейте в виду, последний пункт выигрывает. Может вызвать ошибки, если фильтруемые элементы не являются уникальными и не идентичны.

Другие вопросы по тегам