Разделить результаты из выходных данных JSON

В Azure Logic Apps я пытаюсь получить идентификатор Teams после его создания из HTTP-запроса. Затем я использовал Compose и Parse JSON, чтобы увидеть результаты.

Результаты будут выглядеть следующим образом (сокращенная версия):

"body": { "Location": "/teams('TeamsID')/operations ('operation ID')", "request-id": "request ID", "Content-Lenght": "0" 

TeamsID будет разным при каждом запуске, поэтому я не могу настроить его как статическую переменную. Я пытаюсь получить TeamsID, ​​чтобы позже настроить его как переменную.

каков ваш ожидаемый результат?

iBeMeltin 26.07.2024 20:33

То, что вы предоставили, даже не имеет идентификатора команды. Можете ли вы предоставить полный реальный пример? Отредактируйте/запутайте все конфиденциальное, но полный пример в формате JSON поможет, И, да… ожидаемый результат.

Skin 26.07.2024 23:08
Как сделать HTTP-запрос в Javascript?
Как сделать HTTP-запрос в Javascript?
В JavaScript вы можете сделать HTTP-запрос, используя объект XMLHttpRequest или более новый API fetch. Вот пример для обоих методов:
0
2
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я предполагаю, что вывод действительно выглядит так, как указано - { "Location": "/teams('AAA-BBB-CCC-DDD')/operations('AAAA-BB-CCC-DDD')", "Strict-Transport-Security": "max-age=31536000", "request-id": "CCC-CCCC-CCC-CCCC", "client-request-id": "CCCC-CCCC-CCCC", "x-ms-ags-diagnostic": "{\"ServerInfo\":{\"DataCenter\":\"UK South\",\"Slice\":\"E\",\"Ring\":\"5\",\"ScaleUnit\":\"004\",\"RoleInstance\":\"LO1PEPF0000323A\"}}", "Date": "Sat, 1 Jul 2024 16:20:34 GMT", "Content-Location": "/teams('AAA-BBB-CCC-DDD')", "Content-Length": "0" } - с одинарными кавычками и т. д., а не так, как указано, например. в этой статье Microsoft: Создавайте команды и управляйте участниками с помощью API Microsoft Teams. В любом случае, если формат вывода в вашем вопросе неправильный, подход к извлечению идентификатора Teams все равно будет аналогичен описанному ниже.

Шаг 1. Инициализируйте пустую строковую переменную:

Шаг 2 — Создайте команду с помощью HTTP-запроса, получите ответ в ожидаемом формате:

{
  "Location": "/teams('AAA-BBB-CCC-DD1')/operations('AAAA-BB-CCC-DD2')",
  "Strict-Transport-Security": "max-age=31536000",
  "request-id": "CCC-CCCC-CCC-CCC3",
  "client-request-id": "CCCC-CCCC-CCC4",
  "x-ms-ags-diagnostic": "{\"ServerInfo\":{\"DataCenter\":\"UK South\",\"Slice\":\"E\",\"Ring\":\"5\",\"ScaleUnit\":\"004\",\"RoleInstance\":\"LO1PEPF0000323A\"}}",
  "Date": "Sat, 1 Jul 2024 16:20:34 GMT",
  "Content-Location": "/teams('AAA-BBB-CCC-DD5')",
  "Content-Length": "0"
}

Шаг 3. Извлеките значение идентификатора Teams, сначала разделив значение Location, используя косую черту в качестве разделителя, а затем разделив второй элемент массива результатов, используя одинарную кавычку в качестве разделителя; второй элемент этого массива будет содержать значение, которое вам нужно присвоить вашей переменной:

@{split(split(body('Create_a_team')?['Location'], '/')?[1], '''')?[1]}

Результат:

Мне удалось заставить его работать, используя Compose, а затем вашу функцию разделения и после этого добавив переменную set с выходными данными. Что касается того, почему этот способ работает, я понятия не имею, очень ценю ваше руководство.

Des 28.07.2024 10:27

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

Стандартные журналы диагностики Logic App — потеря данных
Как создать переменную инициализации приложения логики Azure после действия анализа json
Ошибка стенда приложения логики при заполнении сообщения из подписки на тему: VNetPrivatePortsNotConfigured
Приложение Azure Logic: создание CSV-формы JSON для отправки по электронной почте
Общий доступ Azure Key Vault отключен, как получить к нему доступ через портал через Интернет
Последовательно запускать приложение логики из служебной шины Azure
Запуск конвейера выпуска Azure DevOps из приложения логики и получение выходных данных переменной среды из конвейера
Блокировщик при добавлении действия BLOB-объекта в приложении логики
Силовой автомат. Удалить из родительского и дочернего списка, используя идентификатор из родительского списка
Удалить файлы из места назначения, если они удалены из источника с помощью приложения логики