Azure逻辑应用程序并将JSON请求转换为XML

时间:2018-08-13 12:12:54

标签: json xml azure ftp azure-logic-apps

我需要通过三个步骤来创建Logic Apps工作流:

  1. 当接收到HTTP请求(JSON)
  2. 将Json从请求转换为XML
  3. 将XML文件保存到FTP

到目前为止我所做的:

  1. 添加操作“收到HTTP请求时”
  2. 添加Liquid将JSON转换为XML (但我看不到将JSON转换为XML ...仅将JSON转换为JSON,将JSON转换为 TEXT,XML到JSON,XML到TEXT)
  3. 添加操作“ FTP-创建文件”

我还创建了Integration Account,并尝试添加用于将JSON映射到XML的映射,但是我找不到任何示例/模板来实现此目的...

有可能吗?也许还有另一种在这两种格式之间转换的方法?

1 个答案:

答案 0 :(得分:1)

当您只想将JSON有效负载转换为XML文件,而不对数据进行任何转换时,可以使用工作流定义语言的内置xml()函数。 / p>

文档中的详细信息:Workflow Definition Language reference #xml

我制作了一个小型测试Logic App来演示您的用例。看起来像这样:

enter image description here

如您所见,我将触发器主体@xml(triggerBody())上的xml函数用作我的FTP文件内容的输入。

备注:仅当您的JSON消息具有单个rootnode时,此方法才有效。否则,xml转换将失败。您会收到此错误:

  

提供的值不能转换为XML:'JSON根对象具有多个属性。根对象必须具有单个属性才能创建有效的XML文档。考虑指定DeserializeRootElementName。

您可以通过将根节点连接到JSON有效负载来解决此问题。该函数将如下所示:@xml(json(concat('{\"rootnode\":',triggerBody(),'}')))

祝你好运测试一下。让我知道您是否需要更多帮助。