【问题标题】:Convert and Transform JSON HTTP request to XML将 JSON HTTP 请求转换为 XML
【发布时间】:2019-01-20 04:06:29
【问题描述】:

我需要通过三个步骤创建一个逻辑应用工作流:

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

到目前为止我做了什么:

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

我还创建了集成帐户并尝试添加映射以将 JSON 映射到 XML,但我找不到任何示例/模板来执行此操作...

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

【问题讨论】:

  • 作为一种解决方法,您可以使用 Azure 函数来转换 json-xml(作为 HTTP 触发器),然后在您的逻辑应用程序中简单地调用它并得到转换参考:@987654321 @
  • 您需要只转换 JSON->Xml 还是需要转换并转换 JSON->Xml?
  • 我需要在 ftp 上保存 XML 格式的文件,所以我想,我需要转换和转换。我对此真的很陌生;)
  • @Jayendran 感谢您的链接,但我不知道在哪里使用此代码以及如何调用它..

标签: json xml azure azure-logic-apps


【解决方案1】:

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

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

我制作了一个小型测试逻辑应用程序来演示您的用例。它看起来像这样:

如您所见,我使用 triggerbody @xml(triggerBody()) 上的 xml 函数作为 FTP 文件内容的输入。

备注:这仅在您的 JSON 消息具有单个根节点时才有效。否则xml转换会失败。你会得到这个错误:

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

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

祝你测试成功。如果您需要更多帮助,请告诉我。

【讨论】:

  • 感谢您的精彩解释!不幸的是,我需要对数据进行一些转换,但这是一个很好的起点:)
  • 转换为 XML 后,您可以使用 XSLT 映射和集成帐户中的“转换 XML”操作来执行必要的映射。
  • 非常感谢,我会试试这个:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-31
  • 2016-12-04
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多