Получить первый элемент 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. Должен иметь только один элемент, если список был уникальным. Если несколько записей, фильтр по другому значению.
Создать переменную.
Затем посмотрите на отфильтрованный массив и установите для переменной значение, которое есть в элементах массива. Имейте в виду, последний пункт выигрывает. Может вызвать ошибки, если фильтруемые элементы не являются уникальными и не идентичны.