【发布时间】:2019-04-02 19:12:32
【问题描述】:
我有一个将 JSON 放入队列的逻辑应用。
再简单不过了。但是,当我将触发器用于新消息时,原始输出显示如下:
"body": {
"MessageId": "e705a261-f2c4",
"InsertionTime": "Tue, 02 Apr 2019 14:22:24 GMT",
"ExpirationTime": "Tue, 09 Apr 2019 14:22:24 GMT",
"PopReceipt": "AgAAAAMAAAAAA=",
"TimeNextVisible": "Tue, 02 Apr 2019 19:03:32 GMT",
"DequeueCount": "69",
"MessageText": "{\"etag\":\"\",\"ItemInternalId\":\"ab5c-4859-a755\",\"LastChangeDate\":\"2019-04-02T13:37:32.9638012Z\",\"is_current_employee\":true}"
}
当我尝试使用 body 时,这让我非常头疼,尤其是当我将原始 MessageText 传输到我的 Liquid 模板时。我尝试了表达式json(triggerBody()),但它不起作用,因为第一个“/”而失败。我尝试使用 Parse JSON 操作,但这不起作用,因为它只是为了将 JSON 映射到模式而失败,因为 MessageText 无论如何都是一个字符串。
- 是否有
JSON.parse(triggerBody())等效项?文档没有 显示转义的 JSON 示例。 - 我是否不正确地存储了 JSON?
我创建了一个 NodeJS 函数来逐字返回一个带有 JSON 内容类型标头的 JSON.parse()。这似乎是对资源的巨大浪费。
编辑: 我得到的一种解决方案是在我添加到队列时手动进行 base64 编码,然后在我从队列中拉出时手动进行@json(decodeBase64(triggerBody()?['MessageText']))。结果有效,但不会在引擎盖下编码两次?
【问题讨论】:
-
你试过
json.stringify(..)吗? -
@HimanshuAhuja 这不是真正的 Azure 表达式。如果是的话,只需双重转义我的
MessageText字符串。我需要 azurejson表达式来处理转义字符串。 -
@VictorioBerra messageText 是否具有您知道的已定义架构或者它是动态的?
-
@HariHaran 队列中的消息是动态的,我们没有它的架构。我不知道如何将模式应用于队列。目标是将 JSON 传递给流动模板进行转换。
标签: azure-logic-apps