【发布时间】:2018-05-07 22:07:09
【问题描述】:
我正在尝试在 Azure 逻辑应用中读取消息的内容正文,但没有取得多大成功。我看到很多建议说body是base64编码的,建议使用以下解码:
@{json(base64ToString(triggerBody()?['ContentData']))}
base64ToString(...) 部分将内容正确解码为字符串,但该字符串似乎包含一个前缀,开头带有一些额外的序列化信息:
@string3http://schemas.microsoft.com/2003/10/Serialization/�3{"Foo":"Bar"}
该字符串中还有一些额外的字符没有显示在我的浏览器中。所以json(...)函数不接受输入,而是报错。
无效的模板。无法处理模板语言表达式 操作“HTTP”在“1”行和“2451”列输入:“模板 语言函数“json”参数无效。提供的值
@string3http://schemas.microsoft.com/2003/10/Serialization/�3{"Foo":"bar" }无法解析:Unexpected character encountered while parsing value: @. Path '', line 0, position 0.。请参阅https://aka.ms/logicexpressions#json 了解使用详情。'。
作为参考,使用 .NET 服务总线客户端将消息添加到主题(客户端应该无关紧要,但这看起来更像是 C#-ish):
await TopicClient.SendAsync(new BrokeredMessage(JsonConvert.SerializeObject(item)));
如何在我的逻辑应用程序中将其正确读取为 JSON 对象?
【问题讨论】:
-
你看过这个帖子social.msdn.microsoft.com/Forums/en-US/… 吗?尝试使用
TopicClient将消息作为流发送。 -
感谢@Thomas,该线程包含指向a separate blog post 的链接,它直接回答了我的问题。我将这篇文章总结为下面的答案。
标签: c# json servicebus azure-logic-apps