如何在 Microsoft Flow 中转义 json 中的引号?
How to escape quotes in json within Microsoft Flow?
我有一个 MS Flow 可以根据新生成的 Planner 任务构建自适应卡。除非标题中有双引号,否则它会起作用。这打破了自适应卡的 json-code。
我试图将 @replace-function 直接注入到 json-code,但没有成功。
这是我的工作(任务标题中没有引号)示例:
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "@{triggerBody()?['title']}",
"wrap": true
},
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}
这是我尝试替换的方法:
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "@{replace(@{triggerBody()?['title']},'\"','\\"'}",
"wrap": true
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}
我希望替换函数将双引号 (") 替换为转义的 blackslash-version (\")。
但 MS Flow 中的错误显示:无法获取 属性 'properties' 未定义或空引用。
我发现了一些我会考虑的解决方法。但是,还是有感觉,一定有更好的解决办法。我在两者之间添加了一个步骤来初始化我自己的变量,并将替换函数放在那里:
所以函数归结为:replace(triggerBody()?['title'],'"','\"')
我终于发现了我方法中的错误:
- 我尝试了嵌套引用(两次@{})
- 我把嵌套的双引号引用错了
所以这里是解决方案:
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "@{replace(triggerBody()?['title'],'"','\"')}",
"wrap": true
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}
我有一个 MS Flow 可以根据新生成的 Planner 任务构建自适应卡。除非标题中有双引号,否则它会起作用。这打破了自适应卡的 json-code。
我试图将 @replace-function 直接注入到 json-code,但没有成功。
这是我的工作(任务标题中没有引号)示例:
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "@{triggerBody()?['title']}",
"wrap": true
},
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}
这是我尝试替换的方法:
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "@{replace(@{triggerBody()?['title']},'\"','\\"'}",
"wrap": true
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}
我希望替换函数将双引号 (") 替换为转义的 blackslash-version (\")。
但 MS Flow 中的错误显示:无法获取 属性 'properties' 未定义或空引用。
我发现了一些我会考虑的解决方法。但是,还是有感觉,一定有更好的解决办法。我在两者之间添加了一个步骤来初始化我自己的变量,并将替换函数放在那里:
所以函数归结为:replace(triggerBody()?['title'],'"','\"')
我终于发现了我方法中的错误:
- 我尝试了嵌套引用(两次@{})
- 我把嵌套的双引号引用错了
所以这里是解决方案:
{
"type": "AdaptiveCard",
"body": [
{
"type": "TextBlock",
"text": "@{replace(triggerBody()?['title'],'"','\"')}",
"wrap": true
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"version": "1.0"
}