0

我正在尝试通过 Logic App 发送电子邮件。内容必须是孤立资源的数组。

我正在使用 HTTP 请求来查询 Azure 资源图资源管理器,在输出上我有一个 JSON 对象。我想在一个数组上转换这个 JSON 对象。

在此处输入图像描述 如何从 HTTP POST 请求的输出中获取数组?

4

3 回答 3

1

以下是它对我的工作方式:

考虑到提供的 JSON 而不是在 Create HTML 表中使用正文作为 From 数据,data因为 Create HTML 表仅将数组作为输入,然后在发送电子邮件时对其进行修改。

这是我的逻辑应用程序: 在此处输入图像描述

这是电子邮件: 在此处输入图像描述

更新的答案

这是整个逻辑应用程序

在此处输入图像描述

对于解析 JSON,我使用示例有效负载生成模式,该模式具有与您提供的示例值相同的 JSON。IE。

{
  "body": {
    "totalRecords": 25,
    "count": 25,
    "data": [
      {
        "id": "SampleId",
        "diskState": "Sample",
        "resourceGroup": "dkfdfjsi",
        "location": "gareg",
        "subscriptionId": "fgser"
      },
      {
        "id": "SampleID2",
        "diskState": "SAmple2",
        "resourceGroup": "dkfdfjsi",
        "location": "gareg",
        "subscriptionId": "fgser"
      }
    ]
  }
}

由于您的要求是以表格格式发送数据,因此我使用了与您使用相同的连接器,即Create HTML Table使用data数组作为连接器的输入,因此它将使用下面提到的格式的标题自动生成表格

在此处输入图像描述

最后,我使用了 HTML Table 连接器的输出来发送电子邮件

在此处输入图像描述

这是我的逻辑应用程序的代码视图

{
   "definition": {
       "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
       "actions": {
           "Create_HTML_table_2": {
               "inputs": {
                   "format": "HTML",
                   "from": "@body('Parse_JSON')?['body']?['data']"
               },
               "runAfter": {
                   "Parse_JSON": [
                       "Succeeded"
                   ]
               },
               "type": "Table"
           },
           "Parse_JSON": {
               "inputs": {
                   "content": "@triggerBody()",
                   "schema": {
                       "properties": {
                           "body": {
                               "properties": {
                                   "count": {
                                       "type": "integer"
                                   },
                                   "data": {
                                       "items": {
                                           "properties": {
                                               "diskState": {
                                                   "type": "string"
                                               },
                                               "id": {
                                                   "type": "string"
                                               },
                                               "location": {
                                                   "type": "string"
                                               },
                                               "resourceGroup": {
                                                   "type": "string"
                                               },
                                               "subscriptionId": {
                                                   "type": "string"
                                               }
                                           },
                                           "required": [
                                               "id",
                                               "diskState",
                                               "resourceGroup",
                                               "location",
                                               "subscriptionId"
                                           ],
                                           "type": "object"
                                       },
                                       "type": "array"
                                   },
                                   "totalRecords": {
                                       "type": "integer"
                                   }
                               },
                               "type": "object"
                           }
                       },
                       "type": "object"
                   }
               },
               "runAfter": {},
               "type": "ParseJson"
           },
           "Send_an_email_(V2)_2": {
               "inputs": {
                   "body": {
                       "Body": "<p><strong>Total Records</strong> :@{body('Parse_JSON')?['body']?['totalRecords']} , &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong>Count </strong>: @{body('Parse_JSON')?['body']?['count']}<br>\n-----------------------------------------------------------------------------<br>\n@{body('Create_HTML_table_2')}</p>",
                       "Subject": "Sample Test",
                       "To": "<YOUR REQUIRED EMAIL ID>"
                   },
                   "host": {
                       "connection": {
                           "name": "@parameters('$connections')['office365']['connectionId']"
                       }
                   },
                   "method": "post",
                   "path": "/v2/Mail"
               },
               "runAfter": {
                   "Create_HTML_table_2": [
                       "Succeeded"
                   ]
               },
               "type": "ApiConnection"
           }
       },
       "contentVersion": "1.0.0.0",
       "outputs": {},
       "parameters": {
           "$connections": {
               "defaultValue": {},
               "type": "Object"
           }
       },
       "triggers": {
           "manual": {
               "inputs": {},
               "kind": "Http",
               "type": "Request"
           }
       }
   },
   "parameters": {
       "$connections": {
           "value": {
               "office365": {
                   "connectionId": "/subscriptions/<YOUR SUBSCRIPTION ID>/resourceGroups/<YOUR RESOURCE GROUP>/providers/Microsoft.Web/connections/office365",
                   "connectionName": "office365",
                   "id": "/subscriptions/<YOUR SUBSCRIPTION ID>/providers/Microsoft.Web/locations/northcentralus/managedApis/office365"
               }
           }
       }
   }
}
于 2022-01-18T15:06:55.967 回答
0

如果该结构已知,您可以在解析 JSON操作中使用特定模式将其解析为(一组)对象。

要引用或访问 JavaScript 对象表示法 (JSON) 内容中的属性,您可以使用Parse JSON操作为这些属性创建用户友好的字段或标记。这样,您可以在为逻辑应用指定输入时从动态内容列表中选择这些属性。对于此操作,您可以提供 JSON 架构或从示例 JSON 内容或有效负载生成 JSON 架构。

文章在 Azure 逻辑应用中执行数据操作显示了您正在尝试实现的目标的示例,并查看您的屏幕截图。

于 2022-01-18T10:33:49.467 回答
0

@SwethaKandikonda-MT 在此处输入图像描述

我使用递归作为触发器。在我使用 http 连接器查询 Azure 资源图以获取 kql 请求的结果之后。在 http 之后,我在 json 对象中有一个结果。我和你一样使用具有相同模式的 Parse Json。我在使用来自解析 Json 的数据后创建了一个 html 表,但是当我运行 loguc 应用程序时,它会出错,因为 html 表的 from 被认为是 null

于 2022-01-19T13:28:03.987 回答