2

我正在尝试构建一个将数据插入 Sql 数据库的逻辑应用程序。数据来自流分析作业,在服务总线主题上输出,在服务总线触发器中的逻辑应用程序中使用。

要填充插入行的属性(假设它只有一列“名称”),我发现这应该使用以下语法:

 "body": {
          "Name": "@{json(decodeBase64(triggerBody()['ContentData'])).Name}"
  },

如果消息正文包含“名称”属性。

但是,运行此程序时我收到以下错误消息:

',第 0 行,第 0 位置。'。有关使用详情,请参阅https://aka.ms/logicexpressions#json。'。"}

因此,内容似乎包含在另一个阻止 json 解析工作的信封中。

1)任何简单的方法如何解决这个问题?

2) 微软堆栈中的这种集成难道不应该在没有这种嘲笑的情况下工作吗?

谢谢,斯特凡

4

3 回答 3

3

由于工作流定义语言中可用的字符串函数有限,我不得不使用冗长的方法来删除额外的字符串

@{json(substring(replace(decodeBase64(triggerBody()['ContentData']),'@string3http://schemas.microsoft.com/2003/10/Serialization/��', ''),0,sub(length(replace(decodeBase64(triggerBody()['ContentData']),'@string3http://schemas.microsoft.com/2003/10/Serialization/��', '')),1))).fieldname}

有一个更好的方法吗

于 2016-08-22T12:24:10.477 回答
1

感谢您报告此问题,您说得对,它应该可以正常工作。存在一个已知问题,即 ASA ServiceBus 输出 JSON 被包装在 XML 标头中。它将在不久的将来解决,但无法指定特定日期。在此之前,您能否解决它(也许使用子字符串/替换)?

干杯,切坦

于 2016-05-25T16:25:16.390 回答
1

很抱歉延迟返回,此问题现已修复。它在新的兼容级别 (1.1) 下公开,以避免破坏现有解决方案。请使用此URL将您的作业配置为兼容级别 1.1 并试一试。

干杯!

于 2017-08-01T00:26:51.750 回答