在作为 JSON 传递给 Azure 逻辑应用程序的列表 <Object> 中显示具有值的项目
Display Items with value in a List<Object> passed as JSON to an Azure Logic App
我有一些代码可以从页面收集信息。页面上的使用可以 select 下拉列表中的项目并将它们添加为要求。假设某人需要一个笔记本,一些铅笔,也许还有一些椅子(这个想法是他们可以添加的项目列表是从另一个服务动态生成的,所以列表可以是 expanded/contracted 所以我不知道列表可能包含什么或多长时间)。我将其保存在一个列表中,其中对象具有一个 ItemName(字符串)和一个 ItemQuantity(整数)属性.
public class IndividualItem
{
public string ItemName { get; set; }
public int ItemQuantity { get; set; }
public IndividualItem()
{
}
public IndividualItem(string itemName, int itemQuantity)
{
ItemName = itemName;
ItemQuantity = itemQuantity;
}
}
这将被解析为 JSON 并发送到 Azure 逻辑应用程序,并且需要使用此信息发送电子邮件。到达逻辑应用程序的 JSON 如下所示:
Item Requirements: [
{"ItemName":"Pencil","ItemQuantity":13},
{"ItemName":"Xacto Knife","ItemQuantity":10},
{"ItemName":"Colored Pencils","ItemQuantity":44}
]
现在将此信息添加到电子邮件中时就会出现问题。在 Azure 逻辑应用程序中,我知道我可以访问动态传递的信息。因此,我可以访问 'To' 字段,例如填充电子邮件应该去的地方。我可以访问 'Subject' 和 'Footer' 或我需要的任何其他部分。
但是,当访问我的 'MeetingItems' 列表并将其添加进去时,文本显示方括号等(实际的 JSON 字符串)。
我的问题是,如何清理字符串列表的内容以删除它并添加自定义格式。因此,将 [{""....}] 上面的列表转换为一个无序列表,每个项目一个在另一个下面:
- 铅笔:13支
- Xacto 刀:10
...
发送的完整 JSON 字符串示例如下。这需要填充一个“发送电子邮件”操作,我知道我可以通过动态命名约定访问这些字段(因此来自一个字段或其他)。但是执行相同的操作并调用 ItemList 将在文本中保留 [{...}] 格式。我知道您可以执行 For Each 来访问单个项目,但是您如何将其与发送电子邮件操作联系起来?如果您嵌套发送电子邮件操作,您显然会为列表中的每个项目调用一次。
{
"From": "NO REPLY",
"To": "target@email.com",
"CC": "cc@email.com",
"Subject": "Email Subject",
"EmailBody": {
"Introduction": "This email has been issued to inform you of an order",
"OrderDetails": {
"OrderName": "Refill",
"OrderDate": "24/09/2020, 09:00",
"ExpectedDeliveryDate": "29/09/2020, 09:00",
"Location": "Address",
"ConfirmationRequired": "Yes",
"ShippingDetails": "Yes",
"ItemList": [
{
"ItemName": "Pencil",
"ItemQuantity": 13
},
{
"ItemName": "Xacto Knife",
"ItemQuantity": 10
},
{
"ItemName": "Colored Pencils",
"ItemQuantity": 44
}
]
},
"Footer": "Please email sender for additional details"
}
}
----> 我有一个“部分”解决方案,方法是将输入编辑到列表中以保存传递的格式化字符串。但是,我想保持打开状态,看看除了硬编码我发送的字符串之外是否还有其他方法。
{
"From": "NO REPLY",
"To": "target@email.com",
"CC": "cc@email.com",
"Subject": "Email Subject",
"EmailBody": {
"Introduction": "This email has been issued to inform you of an order",
"OrderDetails": {
"OrderName": "Refill",
"OrderDate": "24/09/2020, 09:00",
"ExpectedDeliveryDate": "29/09/2020, 09:00",
"Location": "Address",
"ConfirmationRequired": "Yes",
"ShippingDetails": "Yes",
"ItemList": "<ul><li><b>Pencil</b> - 13</li><li><b>Xacto Knife</b> - 10</li><li><b>Colored Pencils</b> - 44</li></ul>"
},
"Footer": "Please email sender for additional details"
}
}
我有一些代码可以从页面收集信息。页面上的使用可以 select 下拉列表中的项目并将它们添加为要求。假设某人需要一个笔记本,一些铅笔,也许还有一些椅子(这个想法是他们可以添加的项目列表是从另一个服务动态生成的,所以列表可以是 expanded/contracted 所以我不知道列表可能包含什么或多长时间)。我将其保存在一个列表中,其中对象具有一个 ItemName(字符串)和一个 ItemQuantity(整数)属性.
public class IndividualItem
{
public string ItemName { get; set; }
public int ItemQuantity { get; set; }
public IndividualItem()
{
}
public IndividualItem(string itemName, int itemQuantity)
{
ItemName = itemName;
ItemQuantity = itemQuantity;
}
}
这将被解析为 JSON 并发送到 Azure 逻辑应用程序,并且需要使用此信息发送电子邮件。到达逻辑应用程序的 JSON 如下所示:
Item Requirements: [
{"ItemName":"Pencil","ItemQuantity":13},
{"ItemName":"Xacto Knife","ItemQuantity":10},
{"ItemName":"Colored Pencils","ItemQuantity":44}
]
现在将此信息添加到电子邮件中时就会出现问题。在 Azure 逻辑应用程序中,我知道我可以访问动态传递的信息。因此,我可以访问 'To' 字段,例如填充电子邮件应该去的地方。我可以访问 'Subject' 和 'Footer' 或我需要的任何其他部分。 但是,当访问我的 'MeetingItems' 列表并将其添加进去时,文本显示方括号等(实际的 JSON 字符串)。
我的问题是,如何清理字符串列表的内容以删除它并添加自定义格式。因此,将 [{""....}] 上面的列表转换为一个无序列表,每个项目一个在另一个下面:
- 铅笔:13支
- Xacto 刀:10 ...
发送的完整 JSON 字符串示例如下。这需要填充一个“发送电子邮件”操作,我知道我可以通过动态命名约定访问这些字段(因此来自一个字段或其他)。但是执行相同的操作并调用 ItemList 将在文本中保留 [{...}] 格式。我知道您可以执行 For Each 来访问单个项目,但是您如何将其与发送电子邮件操作联系起来?如果您嵌套发送电子邮件操作,您显然会为列表中的每个项目调用一次。
{
"From": "NO REPLY",
"To": "target@email.com",
"CC": "cc@email.com",
"Subject": "Email Subject",
"EmailBody": {
"Introduction": "This email has been issued to inform you of an order",
"OrderDetails": {
"OrderName": "Refill",
"OrderDate": "24/09/2020, 09:00",
"ExpectedDeliveryDate": "29/09/2020, 09:00",
"Location": "Address",
"ConfirmationRequired": "Yes",
"ShippingDetails": "Yes",
"ItemList": [
{
"ItemName": "Pencil",
"ItemQuantity": 13
},
{
"ItemName": "Xacto Knife",
"ItemQuantity": 10
},
{
"ItemName": "Colored Pencils",
"ItemQuantity": 44
}
]
},
"Footer": "Please email sender for additional details"
}
}
----> 我有一个“部分”解决方案,方法是将输入编辑到列表中以保存传递的格式化字符串。但是,我想保持打开状态,看看除了硬编码我发送的字符串之外是否还有其他方法。
{
"From": "NO REPLY",
"To": "target@email.com",
"CC": "cc@email.com",
"Subject": "Email Subject",
"EmailBody": {
"Introduction": "This email has been issued to inform you of an order",
"OrderDetails": {
"OrderName": "Refill",
"OrderDate": "24/09/2020, 09:00",
"ExpectedDeliveryDate": "29/09/2020, 09:00",
"Location": "Address",
"ConfirmationRequired": "Yes",
"ShippingDetails": "Yes",
"ItemList": "<ul><li><b>Pencil</b> - 13</li><li><b>Xacto Knife</b> - 10</li><li><b>Colored Pencils</b> - 44</li></ul>"
},
"Footer": "Please email sender for additional details"
}
}